【发布时间】:2015-07-11 14:53:36
【问题描述】:
我有以下正则表达式,具有积极的前瞻性:
/black(?=hand)[ s]/
我希望它匹配 blackhands 或 blackhand。但是,它不匹配任何东西。我正在测试Regex101。
我做错了什么?
【问题讨论】:
-
你真的要匹配“blackhand”后面的空格,还是要确保后面没有除“s”以外的其他字母?如果要匹配“s”或单词的结尾,可以使用
(?:s|\b)而不是[ s],其中\b匹配单词边界(单词的开头或结尾)。然后它将匹配“blackhand”,当它位于字符串的末尾(后跟空)、句尾(后跟句号)、行尾(后跟换行符)、在子句结尾(后跟逗号),或后跟任何其他标点符号。 -
断言只是查看字符的某个方向,它们不会移动当前匹配位置。因此,如果您期待
hello,然后尝试匹配goodbye,它永远不会匹配。 Fwiw/blackhands?/就是你要找的。span> -
谢谢你们俩;)你们清除了好东西