通过否定来找到匹配(基于缺少的字符串)

时间:2016-05-08 14:53:53

标签: regex string conditional-statements mime

我一直在谷歌上搜索这个。 我想要实现的目标是下一个: 如果MIME不是特定类型,我必须检查正则表达式条件。

例如,我已收到下一条消息:

image/png, image/jpeg, document/pdf

我只想检测document/pdf部分 ,这是一个MIME类型,一个字符串,不以image /

开头

但无论我看起来多么努力,尝试和使用RegExBody软件,我都完全无法匹配它..

我绝望地发布这封信,希望也许专家正则表达可以帮助我......

我尝试了很多方法,主要是: 找出非图像类型,无论是否存在。

它只是拒绝工作。 我尝试了积极的前瞻和否定的前瞻。但我可能以某种方式错了。我无法发布这些示例,因为我已经尝试并删除了这么多。似乎真正接近工作的那个是\b(?:(?!image/\w+))\w+\b,但它只是坚持选择不匹配模式的第二部分。 如果我使用:image/png 得到:png 这意味着它仍然会返回true,尽管我的意思是忽略image/类型..

2 个答案:

答案 0 :(得分:3)

您应该在/\w+之后添加\w+部分以匹配您的子字符串:

\b(?!image/)\w+/\w+\b

请参阅regex demo

模式细节:

  • \b - 字边界
  • (?!image/) - 如果在当前位置之后有image/,则表示匹配失败,
  • \w+/\w+ - 1个单词字符后跟/,后面还有1个单词字符
  • \b - 尾随字边界

答案 1 :(得分:0)

当用''替换时,这个搜索正则表达式将返回document / pdf。

(?:image\/\w+)[,\s]*