正则表达式:如果包含特定字符串,则不匹配

标签 regex

我有两个字符串:

"Some Stuff S00E00 HDTV x264-2HD mp4"

"Some Stuff S00E00 720p HDTV X264"

和这个正则表达式:
^.ome.*.tuff.*.(mp4.*|HDTV.*|x264.*)

我需要的是只匹配第一个。因此,如果字符串包含“720”,则正则表达式不应与之匹配。但是字符串必须包含“mp4”,“HDTV”或“x264”。

最佳答案

如果您选择的语言/平台支持,则可以使用negative lookahead assertion,如下所示:

^(?!.*720).ome.*.tuff.*.(mp4.*|HDTV.*|x264.*)

但这可以进一步简化为:
^(?!.*720).ome.*tuff.*(mp4|HDTV|x264).*

Demonstration

关于正则表达式:如果包含特定字符串,则不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096240/

相关文章:

regex - 匹配引号中的文本(新手)

regex - 使用带有斜杠//或引号 '' |""的拆分模式有什么区别?

php preg_split 最后出现的字符

java - 帮助编写字符串的正则表达式

python - 正则表达式提取未知数字格式的负数

regex - Notepad++ 正则表达式搜索

regex - 字符串中单次出现的正则表达式

javascript - 允许在 jquery 验证引擎中输入空

php - 如何 preg_match PCRE 表达式?

jquery - 尽管格式正确,但日期与 RegExp 不匹配