我有这个字符串asdas d HC-HMC BACK SIDE saas
和这些正则表达式:
\bHC\b
\bHC-HMC BACK SIDE\b
我希望第一个正则表达式失败,而第二个则应匹配。尝试一下,我发现两者都匹配,但是我不明白为什么。
这是第一个正则表达式:https://regex101.com/r/hBZK2h/1
这是第二个:https://regex101.com/r/TEZmP6/1
我必须创建一个正则表达式,使其与边界HC-HMC BACK SIDE
的字符串完全匹配,但不与字符串HC
的字符串完全匹配。有提示吗?
答案 0 :(得分:3)
如果\bHC\b
模式位于字符串的开头或前面带有非单词char(不是字母,数字和HC
(和也许其他字符,取决于正则表达式Unicode支持),即在字符串末尾或紧随其后的是非单词char。请参见word boundary定义。
如果在_
后跟(?!-)
,则可以向第一个正则表达式添加HC
前瞻,以使其失败:
-
请参见regex demo