问题标签 [negative-lookbehind]

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 投票
3 回答
1282 浏览

regex - 正则表达式查找不在行首的双空格

我正在努力处理旧的“格式化”代码,其中添加了很多空格来排列 = 等等:

在这个例子中,它实际上是有道理的,但大多数情况下,代码已被修改为使空白比有用的更令人困惑的状态。

我想做的是用一个空格替换所有双(或更多)空格,但我当然想保留缩进。因此,我正在寻找一个正则表达式来识别不在行首的双(或更多)空格。我已经尝试过消极的lookbehind,但似乎无法使其工作:

任何提示,有人吗?哦,我正在使用 Ultraedit(Perl 正则表达式引擎),所以正则表达式应该是“UE 兼容的”。

编辑:UE 不会逐行评估正则表达式的行;换行符只是作为文档的长字符串中的一个字符,这使问题有点复杂。

0 投票
3 回答
6622 浏览

regex - 正则表达式匹配不以模式结尾的字符串?

我正在尝试形成一个正则表达式,它将匹配不以 DOT FOLLOWED BY NUMBER 结尾的字符串。

例如。

我想匹配前三个。
我尝试修改这篇文章,但它对我不起作用,因为数字可能有可变长度。

有人可以帮忙吗?

0 投票
2 回答
130 浏览

python - 如何在不以特定关键字开头的括号内提取字符串(断言后面有否定的外观?)

我想从下面的字符串(既不以或开头的字符串)中找到(测试)字符串的字符串位置:

是否可以在断言后面使用否定查找来找到特定的字符串?我正在使用这个正则表达式,但我遗漏了一些东西:

我们也可以在断言后面结合一个 or 语句吗?

注意: test 可以是任何可能的字符串:

0 投票
2 回答
1163 浏览

regex - 如何匹配用单个空格分隔的单词与用多个空格分隔的单词

我需要将键和值与如下所示的文本分开

学生 ID:0
部门 ID = 18432
姓名 XYZ

在上面的示例中,Student ID、Department ID 和 Name 是键,0,18432、XYZ 是值。键与值通过 :,= 或多个空格分隔。我尝试了reg ex,例如

我面临的问题是确定一个单词何时用单个空格分隔以及何时被多个空格分隔。

我得到的输出是 line is Student ID: 0 key is Student , value is ID: 0 而我想要 key is Student ID 并且 value 是 0. 对于像 Subjects: 和 Computer Architecture 这样的行,键应该有 Subjects 和 Computer Architecture。稍后当没有值或冒号时我有逻辑,我将字符串附加到前一个键,所以它看起来像 Subjects=Computer Architecture;Advanced Network Security 2

更新:感谢 Ikegami 指出我使用后视运算符。但我似乎仍然无法解决它。

所以当我说(?<!\s\s)\s* [:=]\s*|\s*我的意思是当有两个以上的空间时,消耗所有的空间,当没有两个连续的空间时,寻找 : 或 = 并消耗空间。因此,如果您将下面的行传递给表达式,我不应该得到 $1=Name 和 $2=ABC XYZ 吗?

我似乎得到的是键是空的,值是名称 ABC XYZ。

0 投票
2 回答
208 浏览

regex - ActionScript 中的负向回溯

我正在尝试编写一个匹配大多数常见表情符号的正则表达式,但如果它们位于链接内,则不会。

  • 我的表情是:P =P :-P =-P :) :-) =) =-) :/ =/ :-/ =-/ :o =o :-o =-o :( :-( =( =-( :D :d :-D :-d =D =d =-D =-d

  • 我不想http://匹配表情符号:/

  • 我也不想http://something.com?feature=player:p

  • 我不能使用空格作为分隔符,因为我希望人们能够像这样背靠背键入多个表情符号::):):)

我目前几乎可以使用的正则表达式是这样的:

问题是链接中仅省略了第一个表情符号匹配,而不是全部。

我一直在使用Grant Skinner 的 Regexr进行测试。

0 投票
1 回答
457 浏览

python - Python 正则表达式匹配,只要没有字符

我在使用另一个正则表达式时遇到了一些麻烦。对于这个,我的代码应该寻找模式:

但是,它的匹配过于激进。它恰好匹配一个包含“杀死”这个词的句子。但是该模式会继续收集,直到它在文本中进一步向下达到一个数字。特别是,它匹配:

这不是我所追求的行为。如果在一个句子中找不到这种模式,我希望它失败。

我试图用伪代码实现的解决方案是:

我失败的实现如下所示:

我尝试了“后视”,但我必须指定一个宽度。我试图用上面做的是匹配任何'kill'的结尾,然后是任何非数字,但不匹配一个句点,并且在我之后的数字之前可以自由跟随任何其他内容。

可悲的是,这段代码在我的测试中表现得完全一样。任何帮助,将不胜感激。

0 投票
1 回答
16546 浏览

python - Python 正则表达式负回溯

该模式(?<!(asp|php|jsp))\?.*在 PCRE 中有效,但在 Python 中无效。

那么我该怎么做才能让这个正则表达式在 Python 中工作呢?(Python 2.7)

0 投票
4 回答
1382 浏览

python - 结合负前瞻和正则表达式后面

我想要一个正则表达式,它会在每个字符串中拆分一个字符串,"."除非"."前面和后面跟着一个数字。例子:

"hello world.foo 1.1 bar.1"==>["hello world","foo 1.1 bar", "1"]

我目前有:

但它给出了:

但它没有找到最后一个"."有效的。

0 投票
2 回答
725 浏览

javascript - 无法让 RegExp 在 GWT 中匹配

示例文本:在公园里,孩子们在玩耍。孩子个子高。孩子看着另一个孩子玩耍。

我想匹配第一句中的“child”,第二句和第三句中的“Child”,而不是第三句中的“child”。或者换句话说,匹配“Child”或“child”,但如果以“another”开头,则不匹配

我以为我可以用消极的眼神来做到这一点

但似乎无法使语法正确以生成有效的正则表达式。

即使我能得到正确的语法,我也不确定我能在 GWT 中做到这一点。这是来自 GWT Javadoc 的片段

正则表达式语法中特定于 Java 的构造(例如[a-z&&[^bc]], (?<=foo), \A, \Q),仅在纯 Java 实现中有效,在 GWT 实现中无效,...

任何帮助或见解将不胜感激。

更新:

科林的回答几乎有效,但并不完全正确。

Colin 的正则表达式确实匹配“孩子”和“孩子”,而不是像我问的那样匹配“另一个孩子”。不过也有一些问题。

我想要做的是匹配“孩子”和“孩子”,这样它们就可以替换为孩子的名字或正确的代词他/她,这取决于孩子的性别。

Colin 的正则表达式的问题在于它匹配“,child”和“.child”。如果那是文本中的第一个单词,它也不匹配“Child”。例如:

“孩子去了公园。在公园里,孩子在玩耍。孩子很高。孩子看着另一个孩子在玩耍。”

第一个 Child 不匹配。随后的匹配项是“, child”、“.child”和“.child”。

我研究了 Colin 想出的正则表达式,试图让它只匹配“child”或“Child”,但不能让它工作。

0 投票
2 回答
194 浏览

c# - 仅当字符串中的单词不存在时才匹配字符串

我正在尝试从 SQL 脚本中提取表名。我有以下字符串:

我不想匹配这个字符串,因为tabley它没有以数据库名称为前缀。我试图做到这一点的方法是在数据库名称之前的字符串中检测单词“on”。

我的正则表达式匹配tablex但也匹配tbx1,我不希望我的表达式匹配。

我希望它只在这种情况下匹配。

我的正则表达式应该给我tableXtableY因为它们以数据库名称为前缀。

这是我的表达: