匹配以相同模式开头的所有单词,除了下划线

时间:2017-09-26 15:17:19

标签: regex preg-match

我有一个像这样的单词列表:

raceasian_00
racenonhisp
raceblackpy_5
racewhite_00
racetotalpop

我想preg_match()只有以race开头但 NOT 包含下划线的字词。

此模式选择具有下划线的所有单词:

(race).+?(?=_).+

我认为负面的预测应该以某种方式参与,但我无法弄清楚如何添加它。这不起作用:

(race).+(?!_).+

我错过了什么?

1 个答案:

答案 0 :(得分:1)

使用以下正则表达式模式:

\brace[^_\s]*\b
  • \b - 在字边界处断言位置

  • race - 在字面词的开头匹配race

  • [^_\s]* - 匹配除_和空格\s

  • 之外的零或“多”字符

https://regex101.com/r/E1yHVY/4