所以我有这个正则表达式:
word1'/.+?'/word2($|[^'/]*)
我希望这个匹配
word/2342/word2
但不是
word/2342/word2/lalallaa
只要 word2 后跟斜杠,就根本不匹配
尽管如此,它仍然与第二个正则表达式的"word/2342/word2"部分匹配......我希望它根本不匹配任何东西
如何修复此正则表达式?
怎么样:
word'/.+?'/word2$
?
将
($|[^'/]*)
替换为 (?!'/)
,或至少 ($|[^'/])
。现在,它将匹配任意数量的非斜杠 - 包括零。
我已经尝试过:^(word1?'/.+?'/word2($|[^'/]*))
在 Mac 的 RegExr 中工作,我输入了 :word/2342/word2/word/2342/word2/
,它只匹配第一个word/2342/word2
但这只会检查字符串是否以您的要求开头......即使是一个简单的(word)'/[0-9]{4}'/word2
也可以工作,并允许中间出现任何 4 个数字。但是你的问题令人困惑,你真正想要从中得到什么?
(.+'bword2'b)(?!'/)
呢?
在正则表达式/^abc$/
中,^
是只在字符串的开头查找模式,$
只在字符串的末尾查找模式。组合起来,它将尝试找到与整个字符串的匹配项,就像全有或全无匹配一样。
因此,将您的正则表达式放在字符串中以匹配abc
。