我有一个正则表达式^\/pref1\/pref2\/v.+\/(search)(\/.*)?$
,例如它匹配/pref1/pref2/v1/search/suf1/suf2
。
但我希望它与search
那个地方不包含单词的任何内容匹配。为了实现这一点,我通过添加负前瞻来修改了正则表达式:
^\/pref1\/pref2\/v.+\/(?!search)(\/.*)?$
但这例如不匹配:
/pref1/pref2/v1/somethingElse/suf1/suf2
但它不应该somethingElse
等于search
。如何解决?
您可以使用
^\/pref1\/pref2\/v[^\/]+\/(?!search(?:\/|$))[^\/]+(\/.*)?$
请参阅regex演示。
详细资料:
^
-字符串开始\/pref1\/pref2\/v
-一个/pref1/pref2/v
字符串[^\/]+
-除以下以外的一种或多种字符 /
\/
-一个/
字符(?!search(?:\/|$))
-紧接在右边,不能在search
字符串后跟/
或字符串末尾[^\/]+
-除以下以外的一种或多种字符 /
(\/.*)?
-一个可选的捕获组,匹配一个/
字符,然后匹配除换行符以外的任何零个或多个字符,并尽可能匹配$
-字符串结尾。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句