我有一个字符串,其中包含一个像https://xxxx.yyyy.com/en
这样的 URL。
如何制作一个正则表达式来验证这两个条件是否都满足?
- 该网址不包含
xxxx
。 - 该 URL包含
/en$
或/en/
。
您可以使用
/^(?!.*xxxx).*/en(?:$|/)/
查看正则表达式演示
详
^
- 字符串的开头(?!.*xxxx)
- 除换行符字符外,任何 0+ 字符后都不能有xxxx
.*
- 除换行符字符以外的任何 0 个或多个字符,尽可能多/en
-/en
子字符串(?:$|/)
- 字符串或/
的结尾
因此,如果要将xxxx
替换为多个术语,请使用
/^(?!.*(?:stage|acc)).*/en(?:$|/)/
请注意,如果您添加单词边界,则可以强制引擎将它们作为整个单词进行匹配:
/^(?!.*b(?:stage|acc)b).*/en(?:$|/)/
如果需要完整的字符串匹配,请在模式末尾添加.*
。
仅使用环顾:
^(?!.*xxxx)(?=.*/en(?:$|/)).*
^ // start of line
(?!.*xxxx) // look ahead and don't match anything then 'xxxx'
(?= // look ahead and match
.*/en // anything then '/en'
(?:$|/) // end of line OR a slash
) // end of look ahead
.* // match all (can be omitted if testing lines)
- 标志:全球,多行
- 步数:188
- 演示