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

0 投票
1 回答
130 浏览

regex - vbscript 正则表达式使用否定前瞻来处理另一个单词之前或之后的单词

我在 vbscript 中有下面的模式来打开/关闭我的灯。它捕获案例"turn on the third bedroom light." 但是,是否有一种优雅的方式也可以"turn on the light in the third bedroom"使用一体式模式捕获案例?

我知道我可以(light|lite)以单独的模式分离案例并使用条件逻辑,但我一直在寻找一种优雅的模式,因为我仍在学习正则表达式。

请记住,任何模式都必须排除这种情况"third bedroom closet",如下面的模式所示。另请注意,vbscript 不支持负面看法(我认为)。

0 投票
2 回答
3778 浏览

regex - 如何使用正则表达式负前瞻

我正在尝试从文件中获取电子邮件地址,egrep -o -e并且在行尾遇到地址问题。

这是我的正则表达式:

我意识到这不会捕获电子邮件地址的所有变体,但如果地址位于行尾,这就是我得到的:

所以我想我会尝试一个负面的前瞻,但我不知道如何正确使用它。我在网上读过一些东西,但我对它的工作原理感到困惑。

这是我尝试过的:

Bash 失败了event not found: \\[._a

有什么建议么?

0 投票
2 回答
99 浏览

regex - 使用 Perl 正则表达式保持 TRUE 非贪婪匹配

从以下单词“tacacatac”中,我想匹配“cat”。似乎正则表达式 c.*?t 应该给我这个,但我猜它从第一次出现“c”开始,然后从那里找到下一个“t”,因此匹配“cacat”。

有没有办法(可能使用负前瞻)在最后一个 t 之前从 c 开始查找?

------编辑----- 如果您用字符串替换字母,我需要一个可以工作的选项

谢谢。

0 投票
0 回答
37 浏览

python - 正则表达式:键值解析的负前瞻

我正在尝试处理以下响应标头:

并想检索:

所以我尝试在正则表达式中使用负前瞻,但无法弄清楚..:

这给了我:

这是一个开始,但还不够好..

任何人都可以帮忙吗?

谢谢

0 投票
2 回答
79490 浏览

regex - RegEx - 排除匹配的模式

我要排除以下模式。

我创建了一个正则表达式来匹配其中的任何一个。但是,我想得到除这些之外的所有东西。我不确定如何反转我创建的这个正则表达式。

上面的模式匹配所有列出的字符串。现在我希望它与其他一切相匹配。我该怎么做?

从搜索结果来看,我似乎需要负前瞻/回顾之类的东西。但是,我真的不明白。有人能指出我正确的方向吗?

0 投票
2 回答
126 浏览

regex - 正则表达式(负前瞻)

这个regex,我想匹配URL除了那些/something/something/13-character-group

所以如果我做:

/something/something/123456789012这将匹配

/something/something/1234567890123这不匹配

很多!

0 投票
1 回答
205 浏览

javascript - Javascript Regex Negative Look-ahead(仅验证 {X} 次出现而不是更多)

我认为这被称为负前瞻/x(?!y)/,但我不确定,因为我今天才开始做正则表达式的东西。我正在尝试验证以下内容:

这就是我想要的:

LETTER#LETTER#HYPHEN#DIGIT#DIGIT(老实说,不知道如何以可读的方式描述它)。

我不想允许为这 5 个参数中的任何一个输入额外的值。它必须正好是 2 个字母,后跟一个连字符,后跟 2 个数字 (0-9)。我想验证没有 3 个以上的字母,也没有 3 个以上的数字。

我认为每个的 {n} 出现标记就足够了,但是true当有 3 个以上的字母/数字时它仍然会返回(这也是 {n} 标记的意图)。\b因此,如果为字母找到另一个单词,而为数字找到非单词,我尝试了否定前瞻返回 false \B。但这也没有用。

如果我删除负面的前瞻和\b&\B并坚持原来的

然后一半的值是有效的,但带有额外字符/数字的值也被认为是有效的。

长话短说:我如何确保发生的事件数量准确 X,并在有额外事件时返回 false?也许我只是搞砸了 NLA 的实施。

0 投票
1 回答
1570 浏览

regex - htacess mod_rewrite 正则表达式 - 包括数字但不包括字母

我一直在与正则表达式作斗争,在阅读了 45 分钟后,我的头晕目眩。负前瞻,什么...?(?:/(?:(?!s\d+).)*)+$<--- OMG!!!

:(

所以,我有一个规则

当 url 为www.hi.com/123

如果 url 是or ,我怎样才能让它刷新到/(在这种情况下的文档根目录)?www.hi.com/123abcwww.hi.com/a123bc

我只是想确保只有带有数字的 url 而没有其他匹配。

我试过了

但这刷新到www.hi.com/?id=404,奇怪的是。

0 投票
2 回答
464 浏览

php - PHP Preg_replace() 模式仅替换正确的文本而不是图像 alt/src 文本

我正在尝试"Harvey"用链接替换第一次出现的字符串<a href='/harvey'>Harvey</a>

"/(?<!(src|alt|href)=\")".$internal_links_row['key_phrase']."/i"用作搜索模式,它仅在 alt/src 模式中存在完全匹配时才跳过匹配。

例如:它匹配alt="Harvey". 但它不匹配alt="James Stewart in Harvey",

我需要跳过双引号中的每一个出现,我不能使用strip_tags

请各位帮帮我,谢谢

0 投票
2 回答
412 浏览

java - 当这里有两组时,正则表达式为什么负前瞻不起作用

当我尝试这个正则表达式时

在这个字符串上"MM:";d它符合我的要求

在这个字符串"MM:";c上,它与所期望的不匹配。

但是当我添加第二组时,通过在该组中移动分号并使用 | 使其成为可选

对于这个字符串"MM:";c当我期望它不像以前那样匹配时。

我在 Java 上尝试了这个,然后在 Javascript 上使用 Regex 工具调试:

此链接包含上面的片段

我究竟做错了什么?

注意 | 所以没有必要有分号。同样在示例中我放了 c,它只是示例中单词的替代品,这就是我使用否定前瞻的原因。

在遵循 Holgers 对使用所有格量词的反应之后,

它有效, 这是 RegexPlanet 上的链接