Regex表达式处理句子中的未知单词



我正试图找出一个正则表达式语法,它将匹配以下字符串:

  • 纽约市未完全履行其先前承诺项下的义务
  • 学区未完全履行先前承诺项下的义务
  • 捷运局未完全履行其先前承诺项下的义务

到目前为止,我有以下内容:The (?!.*(no|never|not)).{0,50}? has not fully complied with its obligations under the Prior Undertaking

但是,它不起作用https://regex101.com.谢谢你的帮助。

您的当前模式与任何示例字符串都不匹配,因为这部分The (?!.*(no|never|not))从该位置断言nonevernot不应出现在右侧。

但对于所有3个示例字符串,其中一个单词都存在。

您可能要做的是使用一种温和的贪婪令牌方法来编写模式:

The (?:(?!no|never|not).){0,50}? has not fully complied with its obligations under the Prior Undertaking

这部分(?:(?!no|never|not).){0,50}?现在尽可能少地重复0-50次,以匹配一个字符,断言不直接右边的是所列单词中的任何一个。

Regex演示

最新更新