正则表达式 - 如果尾随字符为“ - ”则不匹配

时间:2015-07-30 09:56:00

标签: java regex

我有一个正则表达式如下

^Schedule\s?(A|B|C|D|E|F|H|J|K|L|M|R|SE)?

所以这会匹配“安排A 我需要帮助”之类的内容。

我希望限制字符“ - ”,即如果字符串类似“Schedule A - 我需要帮助”,它不应该给出匹配。

但如果附表A后跟除了空格和“ - ”以外的任何内容,它应该给出匹配。

1 个答案:

答案 0 :(得分:3)

负面展望将在这里有所帮助

^Schedule\s*([ABCDEFHJKLMR]|SE)(?!\s+-)
  • (?!\s+-)负向前看,检查匹配字符串是否后跟空格(\s+)和-

  • 注意可选量词?不是必需的,因为它会导致正则表达式引擎跳过它们。

  • [ABCDEFHJKLMR]字符类匹配此set中的单个字符。

Regex Demo