标签: negative-lookbehind

一个我无法弄清楚的正则表达式问题(负面看后面)

我如何用正则表达式做到这一点?

我想匹配这个字符串: -myString

但我不想匹配-myString此字符串:--myString

myString当然是什么.

它甚至可能吗?

编辑:

这里有一些关于我到目前为止所得到的信息,因为我发布了一个问题:

string to match:
some random stuff here -string1, --string2, other stuff here
regex:
(-)([\w])*
Run Code Online (Sandbox Code Playgroud)

此正则表达式返回我3场比赛: -string1,--string2

理想情况下,我希望它只返回我的-string1比赛

c# regex negative-lookbehind lookbehind

2
推荐指数
1
解决办法
2524
查看次数

Python模式负面看后面

我试图找出一个匹配文件路径字符串的正则表达式模式,其中名为"cmd.exe"的文件不在"System32"文件夹或其任何子文件夹中.

模式应与此匹配:

C:\Tools\calc.exe
Run Code Online (Sandbox Code Playgroud)

但不是这个:

C:\Windows\System32\calc.exe
C:\Windows\System32\De-de\calc.exe
Run Code Online (Sandbox Code Playgroud)

我尝试了背后的负面看法:

(?<![Ss]ystem32)\\calc\.exe
(?<![Ss]ystem32).*\\calc\.exe
(?<![Ss]ystem32[.*])\\calc\.exe
Run Code Online (Sandbox Code Playgroud)

但迄今为止没有任何工作.有人看到我的错误吗?

您可以在此处查看我的示例并自行尝试:http: //rubular.com/r/syAoEn7xxx

谢谢你的帮助.

python regex pattern-matching negative-lookbehind

2
推荐指数
1
解决办法
281
查看次数

无法使用负向前瞻进行正则表达式来修复JSON中未转义的引号

我有一些JSON代码,格式如下:

[
  { "abc ": "d ef", "g": "h i", "jk lm no": "pq", "r st": "uvw xyz" },
  { "!1 2": " 3", "4 ": "5 6 7", " 8 ": "9 abc", "def": "hi "NAME" jk" },
  ...
]
Run Code Online (Sandbox Code Playgroud)

我需要在"NAME"中的引号前添加反斜杠才能正确解析此JSON.所以我需要上面的字符串看起来像这样:

[
  { "abc ": "d ef", "g": "h i", "jk lm no": "pq", "r st": "uvw xyz" },
  { "!1 2": " 3", "4 ": "5 6 7", " 8 ": "9 abc", "def": "hi \"NAME\" jk" }, …
Run Code Online (Sandbox Code Playgroud)

regex json negative-lookbehind negative-lookahead

2
推荐指数
1
解决办法
184
查看次数

Javascript正则表达式; 找到'x',但如果前面有'y'则没有

像"馅饼"这个词之类的东西之前没有"披萨"这个词.我对正则表达式相当新,这个问题一直给我带来麻烦.

如果您可以使用JavaScript正则表达式语法提供答案,那么我会非常感激.

编辑:我可能通过在两个单独的正则表达式中单独搜索字符串'pizza pie'和'pie'来复制功能,并且只计算出现在第二个查找但不是第一个查找中的字符串索引.这是一个复杂的解决方案,不是那么快,但可以很容易多线程,所以我想它没关系.

javascript regex negative-lookbehind

2
推荐指数
1
解决办法
1844
查看次数

JS的外观支持是什么?如何更换?

我有一个字符串,我想替换所有不跟随/跟随任何其他i的'i',并将其替换为'z`.我知道有负面的前瞻和后视.

结果应该是:

i => z
iki => zkz
iiki => iikz
ii => ii
iii => iii
Run Code Online (Sandbox Code Playgroud)

我试着用这个:

/(?<!i)i(?!i)/gi
Run Code Online (Sandbox Code Playgroud)

它失败并抛出一个错误:Invalid regex group.

然而

/i(?!i)/gi
Run Code Online (Sandbox Code Playgroud)

工作正常,但匹配第二个"我":"ii".

还有其他方法吗?

如果有的话,对JS中的lookbehind的支持是什么?

javascript regex negative-lookbehind negative-lookahead

1
推荐指数
2
解决办法
314
查看次数

vim中的奇怪行为与负面的后视

所以,我在vim中进行搜索:

/\(\(unum\)\|\(player\)=\)\@<!\"1\"
Run Code Online (Sandbox Code Playgroud)

并且正如预期的那样,它与以下行不匹配:

player="1" 
Run Code Online (Sandbox Code Playgroud)

但匹配有以下行:

unum="1" 
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?所有这一切都不是要被否定的原子:\(\(unum\)\|\(player\)=\)

自然只是做:/\(\(unum\)\|\(player\)=\)匹配unum=player=.

regex vim find negative-lookbehind

0
推荐指数
1
解决办法
464
查看次数

如何在括号中提取不以特定关键字开头的字符串(断言后面有负面看法?)

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

 •  <test>* (for test) (or test) (test)
Run Code Online (Sandbox Code Playgroud)

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

m_comments = re.search('(?<!\(for)|(?<!\(or)', line)
Run Code Online (Sandbox Code Playgroud)

还可以在断言后面结合使用或声明吗?

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

<an other eg> (for another test) (or with this) (anything)
Run Code Online (Sandbox Code Playgroud)

python regex negative-lookbehind

0
推荐指数
1
解决办法
122
查看次数