我希望匹配字符串path
,但不匹配字符串os.path
。我该怎么做?试过(?!(os\.path))\bpath\b
,但我仍然得到所有os.path
S
答案 0 :(得分:1)
您可以使用基于后视的正则表达式,例如
(?<!os\.)\bpath\b
这基本上与确切的单词path
匹配,并确保其前面没有os.
如果您想避免类似的结构,例如sys.path
或xx.path
,您可以使用(?<!\w\.)
代替了后视。
请参阅regex101 demo。
答案 1 :(得分:0)
如果您想从path
尝试
.
(?<!\.)path
这将跳过sys.path
或os.path
,但会与path
匹配。
e.g。如果测试字符串是if path and not os.path.sep in path
,
如果path
而不是path
请参阅Chakra
上的演示