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