为什么在这种情况下 left
\b
的表现与 left \B
一样?
\b\$[0-9]+(\.[0-9][0-9])?\b
这个模式应该省略像
a$99.99
这样的短语,因为左\b
的表现。
\b
检测未被字母、数字或下划线包围的短语。但不是!我在 regex101 中检查了它。
然而,正确的
\b
完全正确地执行!
令人惊讶的是,我把它改成了左边
\B
它起作用了!
\B
检测被字母、数字或下划线包围的短语。但在这里它作为左\b
!
我不知道为什么?!
您对
\b
的理解不正确。它匹配一侧有“单词”字符而另一侧有“非单词”字符的位置。 $
不是单词字符,因此它只会匹配 $
紧跟在单词字符之前的位置(字母数字,加上在某些实现中,例如 @
和 _
)