我回来了一个正则表达式的问题 - 我需要测试一个字符串的模式出现 - 它可以隐藏在字符串的某个地方 - 正面,正面但前面有一个空白,介于两者之间或最后,也许最后是空白.
我认为这个正则表达式可能会起作用 - 但它没有做到这一点:
/ ?[^a-z\-\+]hit[^a-z\-\+]/
Run Code Online (Sandbox Code Playgroud)
因为它只显示第一个命中,当它前面有一个空白 - 因为我用问号标记了第一部分 - 我认为第一个字符也可能被省略 - 请再次让我回到轨道上告诉我哪里错了. ..
我在这里做了一个小提琴:http://regexr.com/38lcq(编辑:我刚尝试了"Niet the Dark Absol"的正则表达式 - 更好但仍然提供了比我想要的更多的比赛...)
它不起作用,因为你[^a-z\-+]要求角色在你的"目标"之前hit.
尝试:/\bhit\b/- 使用\b表示单词边界.
你也可以更具体:
/(?<![a-z0-9+-])hit(?![a-z0-9+-])/i
Run Code Online (Sandbox Code Playgroud)
这使用负面的lookbehind和lookahead来排除你不想要的东西.
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |