我有以下正则表达式,具有积极的前瞻性:
/black(?=hand)[ s]/
我希望它与 blackhand 或 blackhand 匹配。但是,它不匹配任何内容。我正在Regex101上进行测试。
我究竟做错了什么?
最佳答案
前瞻不消耗正在搜索的字符串。这意味着[ s]
会尝试在黑色之后立即匹配空格或的。但是,您的前瞻性表示手必须遵循黑色,因此正则表达式无法匹配任何内容。
要在使用lookahead时匹配 blackhands 或 blackhand ,请在lookahead中移动[ s]
:black(?=hand[ s])
。另外,也不要完全使用前瞻:blackhand[ s]
。