问题标签 [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.

0 投票
1 回答
888 浏览

c# - 使用 Negative lookbehind 和 Negative lookahead assertion 的正则表达式

可能重复:
正则表达式匹配双引号外的左单引号

第一个注意事项:

我需要匹配不在左右双引号内的所有“左单引号”。

澄清:

  1. This is a “sample &lsquo string &rsquo &rdquo -> this 不应该匹配,因为&lsquo(单引号)在双引号内

  2. 这是&lsquo sample &rsquo -> &lsquo 应该匹配,因为它不在双引号内

这是我当前的正则表达式:

问题在于,它同时查看&ldquoand &rdquo,如果出现 ldquo 和 rdquo 中的任何一个,它将不匹配

例如:

  1. 这是一个&lsquo sample &rdquo -> 我需要在这里匹配 &lsquo 但由于 &rdquo 的出现,正则表达式不匹配

  2. 这是&ldquo a string &lsquo sample->与第一个示例相同的问题

希望有人能帮助我!谢谢!

0 投票
0 回答
465 浏览

internet-explorer - 如何禁用 Internet Explorer 超前下载器?

我们有一个带有登录页面的项目。登录时,会话被设置,客户端被重定向到 webapp。

一切正常,除了在我们生产时,一些 Internet Explorer 8 客户端正在使用前瞻下载器。由于尚未设置单点登录会话,因此预加载器正在尝试获取一些 javascript 文件,但会显示一个带有 javascript 扩展名的登录页面。导致 Internet Explorer 浏览器提示用户安全警告和下载 javascript 文件的问题。

我们试图在 http-equiv 元数据中设置一个字符集,因为据说这会停止前瞻下载器。但是没有用,我们仍然在某些客户端上获得了下载框。

似乎 IE 甚至被设置为遵循 javascript 重定向,而且看起来不可能阻止这种情况的发生。

有没有人认识到这一点并知道解决方案,因为这让我发疯。

0 投票
1 回答
1753 浏览

regex - 凯特的前瞻模式

我正在为一本法律书籍编制一个案例表。我已将其转换为 HTML,因此我可以使用标签进行搜索和替换操作,我目前在 Kate 工作。正文引用案例名称,案例引用在脚注中,例如

<i>Smith v Jones</i>127 ......... [other stuff including newline characters].......</br>127 (1937) 173 ER 406;

我已经能够在 Kate 中进行前瞻性工作,使用:

<i>.*</i>([0-9]{1,4}) .+<br/>\1 .*<br/>

...但我遇到了贪婪的问题。

文本很乱,所以我真的需要一步一步地找到匹配项,而不是依赖批处理。

是否有支持前瞻和非贪婪运算符的 Linux(或 Windows)文本编辑器,或者我将不得不尝试 grep 或 sed?

0 投票
1 回答
187 浏览

php - JavaScript 和 PHP 在前瞻断言的惰性方面的差异

我发现 JavaScript 和 PHP 处理以下正则表达式的方式之间存在差异,我感到很困惑。

在 JavaScript 中,

结果分别为

如这个jsFiddle所示。

然而,在 PHP 中,

结果是,

我不太担心这个警告。但似乎在 JavaScript 中,前瞻断言在某种程度上比在 PHP 中“更懒惰”。为什么有区别?这是其中一个引擎中的错误吗?理论上哪个更“正确”?

0 投票
2 回答
168 浏览

regex - JavaScript 正则表达式中的前瞻

使用 JavaScript,我试图替换 html 标记内的属性,并提出了这个正则表达式:

这行得通。但是,我希望能够指定查找包含属性值的相同类型的引号。因此,例如,我想指定这是否是表单<tag attr='data'>,在第二个引号中查找单引号,而不是双引号。反之亦然<tag attr="data">;将 SECOND 标记与双引号匹配,而不是单引号。这是为了帮助我保护函数调用免受格式奇特的 HTML 的影响。

那么,我该如何实现呢?

谢谢!

0 投票
1 回答
134 浏览

regex - 正则表达式=>两个匹配之间的前瞻c#

这句话是真的:

这句话是真的:

这对于 rte 是正确的:

这对 barl 来说是正确的:

为什么这是错误的?

0 投票
3 回答
317 浏览

java - 如何使用 Look-Ahead 和 Look-Behind 创建自定义边界匹配器?

我想使用Scanner在单词边界处拆分字符串。通常,这将是这样完成的:

问题是我对“单词”字符的定义与标准略有不同,[a-zA-Z_0-9]因为我想包含更多字符并排除_: [a-zA-Z0-9#/]。因此,我不能使用该\b模式。

所以我尝试使用前瞻和后视来做同样的事情,但我想出的并没有奏效:

扫描仪不会使用它在任何地方分割。

是否可以使用前瞻和后视以及如何做到这一点?

0 投票
2 回答
584 浏览

javascript - javascript 正则表达式拆分,包括分隔符

我想'9088{2}12{1}729'分成[ "9088", "{2}12", "{1}729" ]

甚至对我更有用:[ "9088", "2-12", "1-729" ]

试过:

也试过:

我知道它可能涉及一些其他的正则表达式字符串来拆分,包括分隔符。


在php中尝试过,我想你也可以在一行中完成。

只需将替换功能与 split 包装起来即可正确使用偏好顺序。

我想我更喜欢 js :)

0 投票
2 回答
3299 浏览

antlr - ANTLR:回溯和前瞻之间的区别?

我对 ANTLR 比较陌生。我有一个非常简单的语法:

我认为我已经了解了前瞻和回溯概念的基础知识(适用于句法谓词)。所以这个语法适用于 k=4 或 backtrack=true。但是确切的区别是什么,主要问题是我什么时候使用什么?我试图在互联网上找到答案,但没有成功。

0 投票
3 回答
656 浏览

java - 正则表达式仅在字符串后面没有特定字符时才匹配字符串

我需要一个正则表达式,它仅在字符串后面没有正斜杠(/)字符并且我想匹配整个字符串时才匹配字符串。

例如下面的字符串应该匹配

但不是这个

我尝试使用Negative Lookahead来实现此答案所指定的目标。

我的代码是这样的。

它正在失败。但是,如果我使用matcher.find()它,它就会成功。

请帮助我理解为什么它不匹配以及实现此目的的正则表达式?