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

SKY*_*L26 5 regex string mime conditional-statements

我已经在谷歌上搜索了很多关于这个的信息。我想要实现的目标是:如果 MIME 不是特定类型,我必须检查正则表达式条件。

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

image/png, image/jpeg, document/pdf
Run Code Online (Sandbox Code Playgroud)

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

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

我绝望地发布这篇文章,希望也许专家正则表达式可以帮助我。

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

它只是拒绝工作。我尝试了正向预测和负向预测。但我可能用错了。我无法发布这些示例,因为我已经尝试并删除了很多示例。看起来真正接近工作的是,\b(?:(?!image/\w+))\w+\b但它只是坚持选择不匹配模式的第二部分。如果我使用:image/png 它会得到:png 这意味着它仍然会返回 true,尽管我的意思是忽略image/类型。

Wik*_*żew 4

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

\b(?!image/)\w+/\w+\b
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

图案详情:

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