【问题标题】:Regular Expression to find postfix but ignore a specify prefix正则表达式查找后缀但忽略指定前缀
【发布时间】:2014-07-11 21:35:23
【问题描述】:

我想要一个正则表达式来识别以下形式的所有单词:xxxxBlah

但要忽略以下具体情况:SpecialBlah

有没有什么简单的方法可以用正则表达式来表达?

【问题讨论】:

标签: regex


【解决方案1】:

没有负面回顾的版本:

(?!SpecialBlah\b)\b\w+Blah\b

Debuggex Demo

Regex101 Demo

【讨论】:

  • 否;第一个\b 在哪里没有区别。
  • 如果\w已经被使用,我认为没有必要添加\b,它会自动寻找单词边界。
  • @Braj 是的,您确实需要\b。否则,它匹配SpecialBlah 中的pecialBlah。它还将SpecialBlahs 视为匹配项,因为它不会强制匹配尾随分词。
【解决方案2】:

根据您使用的语言/IDE/工具,这应该可以工作:

\w+(?<!Special)Blah

Debuggex Demo

它使用negative look-behind。所以它会在“Blah”之前找到任何word-characters,只要它不是“Special”。

其他人在不可能进行负面回顾时提供了替代方案,such as in JavaScript


请考虑将Stack Overflow Regular Expressions FAQ 加入书签以供将来参考。

【讨论】:

  • 很少支持负后视:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 2021-11-01
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
相关资源
最近更新 更多