正则表达式负回顾后匹配排除的项目
问题描述:
我难以理解这个表达式:正则表达式负回顾后匹配排除的项目
/((?<!=0)x2)/
虽然试图匹配“X2”上的串“0X2 - 2 = 1”
的目标是寻找在“x2”的后面并检查它是否为“0”,然后避免选择它。 如果它只是“x2”,那么我希望它被选中。 (例如字符串“x2-3x = 4”)
我已经尝试了正反两方面的方式,它始终保持匹配零(0)。
任何人都可以提供一些见解,为什么会发生这种情况?
我使用https://regex101.com/来测试它(选中Python选项)。
我说得对,当我认为:
?<!=
意味着下面的符号需要当它们存在于前的实际匹配EXP被排除在外?
答
有几个问题在这里使用的格式是Javascript而不是蟒蛇,你不需要前/后/
/((?<!=0)x2)/
我们得到
((?<!=0)x2)
理解的目光变通
Positive Negative
Look ahead (?= (?!
Look Behind (?<= (?<!
所以我们得到
((?<!0)x2)
然后还有的周围(),你需要它全场比赛中的独立团一定的冗余,所以把它简化
(?<!0)x2
工作演示here。
+1
感谢队友,这是分组为neccesary我目前的目标,所以这是故意的,反正,我会接受你的anwser几分钟:) –
答
You are close;然而,在Python,负回顾后简直是?<!
,没有=
:
import re
s = "0x2 - 2x = 1"
if re.findall("(?<!0)x2", s):
print("no zero as a coefficient")
else:
print('found zero as coefficient')
尝试'/((? kaza
哦,哇,它正要让我疯狂......无处不在网络上回顾后有等于以及 –