java - 正则表达式 - 如果尾随字符为 "-",则不匹配

标签 java regex

我有一个正则表达式如下

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

因此这将匹配“时间表 A我需要帮助”之类的内容。

我想要对字符“-”进行限制,即如果字符串类似于“Schedule A - i need help”,则它不应该给出匹配项。。

但如果 Schedule A 后面跟着空格和“-”以外的任何内容,则应该给出匹配项。

最佳答案

负面展望在这里会有帮助

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

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

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

Regex Demo

关于java - 正则表达式 - 如果尾随字符为 "-",则不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720593/

相关文章:

java - 我需要在 Java 中关闭 InputStream 吗?

java - 如何在启动时保存应用程序方向状态

java - Jackson多态序列化: how to remove super type property wrapper?

javascript - 在javascript中使用正则表达式从查询字符串中删除plsql类型

regex - 在 bash 中连接两个没有换行符的命令的输出

java - 如何模拟接受类类型的泛型方法?

java - 联系人组 GROUP_VISIBLE 和 GROUP_IS_READ_ONLY 被忽略吗?

javascript - javascript中的正则表达式获取<span>标签的内容

python - 正则表达式 : Take all except one condition

ruby - 在文本中捕获所有大写字母 "phrase"