匹配除了以下划线
问题描述:
全部用相同的模式开头的单词我有这样的单词列表:匹配除了以下划线
raceasian_00
racenonhisp
raceblackpy_5
racewhite_00
racetotalpop
我想preg_match()
只与race
开头,但做不包含下划线的字。
这种模式选择那些有下划线的所有单词:
(race).+?(?=_).+
而且我觉得负先行,应以某种方式参与,但我无法弄清楚如何将它添加此没有工作:
(race).+(?!_).+
我错过了什么?
答
使用下面的正则表达式:
\brace[^_\s]*\b
\b
- 在一个字边界race
断言位置 - 比赛race
在单词的开头字面上[^_\s]*
- 匹配零或“许多”字符,除了_
和d空白\s
@EatPeanutButter,欢迎。我们需要排除空白,因为“种族asin”将形成2个单词,但我们只需要匹配一致的单个单词 – RomanPerekhrest