子字符串的Regexp字边界匹配,即使它不应该匹配

子字符串的Regexp字边界匹配,即使它不应该匹配,regex,Regex,我有这个字符串asdas d HC-HMC后端saas和这些正则表达式: \bHC\b \bHC-HMC BACK SIDE\b 我希望第一个正则表达式失败,而第二个正则表达式应该匹配。尝试一下,我看到两人都匹配,但我不明白为什么 这是第一个regexp: 这是第二个: 我必须创建一个正则表达式,该表达式与字符串的边界HC-HMC BACK-SIDE完全匹配,但不是字符串HC。有任何提示吗?如果\bHC\b模式位于字符串开头,或者前面有一个非单词字符(不是字母、数字和(可能还有其他字符,具体

我有这个字符串
asdas d HC-HMC后端saas
和这些正则表达式:

\bHC\b

\bHC-HMC BACK SIDE\b
我希望第一个正则表达式失败,而第二个正则表达式应该匹配。尝试一下,我看到两人都匹配,但我不明白为什么

这是第一个regexp:

这是第二个:


我必须创建一个正则表达式,该表达式与字符串的边界
HC-HMC BACK-SIDE
完全匹配,但不是字符串
HC
。有任何提示吗?

如果
\bHC\b
模式位于字符串开头,或者前面有一个非单词字符(不是字母、数字和
(可能还有其他字符,具体取决于regex Unicode支持),并且在字符串末尾或紧跟着一个非单词字符,则该模式匹配
HC
。请参阅定义

如果
HC
后面跟有
-
,则可以在第一个正则表达式中添加
(?!-)
前瞻,使其失败:

\bHC\b(?!-)

请参见

您需要了解什么是a。