通过否定查找匹配项(基于缺失的字符串)

Finding match by negating (based on a missing string)

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

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

image/png, image/jpeg, document/pdf

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

开头

但无论我多么努力地寻找、尝试和使用 RegExBody 软件,我就是完全无法匹配它..

我 post 绝望地读这个,希望正则表达式专家可以帮助我。.

我尝试了很多方法,主要是: 找出非图像类型,不管有没有。

它只是拒绝工作。 我尝试了正面前瞻和负面前瞻。但我可能不知何故用错了。我无法 post 示例,因为我已经尝试并删除了太多示例。看起来真正接近工作的是 \b(?:(?!image/\w+))\w+\b 但它只是坚持选择不匹配模式的第二部分。 如果我使用:image/png 它得到:png 这意味着它仍然 return 是真的,尽管我的意思是忽略 image/ 类型..

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

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

regex demo

图案详情:

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

此搜索正则表达式替换为 '' 时将 return document/pdf.

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