问题标签 [negative-lookahead]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parsing - LR解析算法中的负前瞻
考虑 LR 系列解析生成器(例如 YACC、BISON 等)的语法规则:
这是一条普通的规则,只是它有一个限制:用这条规则产生的短语不能以 . 开头Terminal1, ..., TerminalN
。(当然,这个规则可以用一套常用的规则来代替,但它会导致更大的语法)。这对于解决冲突很有用。
问题是,是否存在接受此类限制的 LR 表构造算法的修改?在我看来,这样的修改是可能的(如优先关系)。
当然,它可以在运行时检查,但我的意思是编译时检查(在构建解析表时执行的检查,如yacc兼容生成器中的 、 和指令%prec
。)%left
%right
%nonassoc
java - 用于匹配以模式开头且不以模式结尾的字符串的正则表达式
给定一个 url,我必须匹配该 url 以特定域开头而不以特定模式结尾。
例如,
给定一个 url 列表,我想匹配一个以"http://www.google.com/"
or开头"http://www.facebook.com/"
且不以".jpg"
and结尾".bmp"
的url".png"
我尝试了类似的东西
但这似乎不起作用..有什么错误吗?或者任何替代方式?
php - preg_replace file_get_contents 中不包含单词的所有链接
我正在将一个页面读入一个变量,我想禁用地址中不包含“补救”一词的所有链接。到目前为止,我拥有的代码获取了所有链接,包括带有“补救措施”的链接。我究竟做错了什么?
- 解决方案 -
java - 正则表达式检查字符串中何时缺少单词模式
我有一个类似这样的目标字符串 PT_content:data1 AND PT_content2:data2 OR PT_content3:data3
现在我需要检查字符串中是否有任何无效的限定符。例如
PT_content:data1 AND PR_content2:data2 OR PT_content3:data3(这是无效的,因为只允许PT_xxxxxx:data。)
我尝试了一些带有负前瞻的模式,但它似乎不起作用
谢谢
java - Java 正则表达式错误 - 使用组参考进行后视
我正在尝试构建一个正则表达式,它与一个类中出现的两次字符完全匹配。这是我制作的正则表达式:
如您所见,它使用负片前瞻和后视。但是,像往常一样,后者不起作用;当它明显具有最大长度(恰好是一个字符)时,java 会抛出众所周知的异常“后视组没有明显的最大长度”。
理想情况下,正则表达式应匹配“hh”、“jhh”、“ahh”、“hhj”、“hha”,但不匹配“hhh”。
有关如何处理此问题并制定解决方法的任何想法?
.net - ^ cause some trouble in regex
I am trying to match a substring with the regex but the ^ changes the logic as I did not expect. The regex ...
rejects the the sentence which starts with My Words
. In this case the negative lookahead checks for the whole word.
However, if I drop the ^
then
the regex just returns the y Words lskjdf
in the sentence containing My Words lskjdf
. Why the negative lookahead is not treaded as a whole in this case? Why It picks only the M
for the match? How the ^
and (?1
is working collectively?
regex - 在负前瞻内回溯
我想找出在负前瞻中回溯是如何工作的。像 ...
正则表达式引擎将尝试第一个多远.*
。我正在测试somewhere awesome My Words
。我期望应该被拒绝,但不是。那么回溯是如何在这里工作的以及这是如何发生的呢?
python - 正则表达式:将字符串与模式匹配(可能不存在)
我正在尝试使用 Python 中的正则表达式标记器解析 XML 文档(这是一个有限集,所以正则表达式就可以了!),但我无法正确匹配注释。
这些评论的格式是<!--This is a comment-->
评论本身可以包含各种非字母数字字符(包括'-')的形式
我想以这样一种方式匹配它们,即我将评论分成以下标记:
<!--
This is a comment
-->
开始标记很容易获得,我用另一个正则表达式成功地抓住了它,但是评论正则表达式本身变得太贪婪并--
从结束标记中抓取。不过,我希望这个正则表达式能够获取不一定包含在注释中的字符串,因此它也应该能够获取<Tag>This is text</Tag>
并正确返回This is text
。
这是我目前用于文本的正则表达式:
[^<>]+(?!-->)
最终结果是This is a comment--
,当我只想This is a comment
让我的其他正则表达式可以抓住-->
. 这个正则表达式确实适用于普通标签,但是,由于结束标签上存在“<”并且This is text
从我之前的示例中正确返回。
我知道我不能正确使用负前瞻。关于我在这里做错了什么的任何想法?我试过[^<>]+(?=-->)
了,但那不匹配任何不是这种形式的评论(如普通标签)。我认为(?!-->)
当它看到该模式时会停止匹配,但它似乎不像那样工作,只是继续匹配直到它看到结尾的“>”。
为上下文发布一段代码:
这是脚本目前正在做的唯一事情。
javascript - 需要 Javascript RegEx 和转义建议
我想用替换(模板语言)替换一个或多个问号,如下所示:
但是现在,我最近遇到了一个问题,问号实际上是一个问题,不应该被转义。我决定使用~
as 转义字符,因此不应转义:
工作至今。但是,如果我使用多个问号(模板语法的要求),我最终会得到废话:
关于如何做到这一点的任何建议?一个经典\
的逃脱角色会让我比那个更快乐,~
但我也遇到了问题。
regex - .htaccess Negated Lookahead Regex 格式错误
以下是我的 .htaccess 文件中的一段。我想要 Apache 的以下行为(目前该站点位于 localhost,但这没关系,对吧?):
如果请求的资源不是
或者
喜欢
提供的资源必须是
否则,提供的 URL 必须是 {site_url}/core 或 {site_url}/login,即所请求的任何内容。
.htaccess 文件是:
但这似乎不起作用并返回错误。我对正则表达式不是很熟悉,我正在努力学习这些。所以我从这个表达式中推断出的是:
如果 '/' 之后的表达式,即 site_url 之后的 URI 与 core 或 login (?!core|login)) 不匹配,并且后跟任何内容,包括子文件夹 (/?.*)$ 可选斜杠,以及后面的任何内容,将别名设置为 /site/(第二个括号中匹配的任何内容)。
该模块正在工作,我只使用 Header add 部分进行了检查,问题是正则表达式。
请帮忙。