0

所以我有这个正则表达式:

word1\/.+?\/word2($|[^\/]*)

我想要这个匹配

word/2342/word2

但不是

word/2342/word2/lalallaa

IE。只要 word2 后跟一个斜杠,就完全不匹配

尽管如此,它仍然会匹配第二个正则表达式的 'word/2342/word2' 部分......我希望它根本不匹配任何东西

如何修复此正则表达式?

4

5 回答 5

2

关于什么:

word\/.+?\/word2$

?

于 2013-09-04T23:43:20.003 回答
1

替换($|[^\/]*)(?!\/),或至少($|[^\/])。现在,它将匹配任意数量的非斜线——包括零。

于 2013-09-05T00:02:44.967 回答
0

我已经尝试过:^(word1?\/.+?\/word2($|[^\/]*))它在 Mac 的 RegExr 中工作,我输入了:word/2342/word2/word/2342/word2/它只匹配第一个word/2342/word2,但这只会检查字符串是否以你所要求的开头......即使是简单的(word)\/[0-9]{4}\/word2也可以工作并允许中间的任何 4 个数字。 .但是您的问题令人困惑,您真正想要的是什么?

于 2013-09-04T23:44:50.107 回答
0

怎么样(.+\bword2\b)(?!\/)

于 2013-09-05T00:04:19.443 回答
0

在 regex/^abc$/中,^是仅在字符串的开头查找模式,而$是仅在字符串的末尾查找模式。结合起来,它会尝试找到与整个字符串匹配的内容,就像全匹配或全匹配一样。

因此,将您的正则表达式放入字符串中以匹配abc.

于 2015-10-25T11:30:02.813 回答