regex 为什么在这个正则表达式模式中,left \B的性能与left \B相同?[副本]

pw136qt2  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(131)

此问题已在此处有答案

How does \b work when using regular expressions?(7个回答)
Difference between \b and \B in regex(10个答案)
4天前关闭。
为什么在这种情况下,left \b的性能与left \B相同?

\b\$[0-9]+(\.[0-9][0-9])?\b

由于left \b的性能,此模式应省略诸如a$99.99之类的短语。
\b检测未使用字母、数字或下划线绑定的短语。但不是!我在regex 101中检查了它。as you see it detects phrases such tyh666.8 but doesn't detect $99
然而,右\b执行完全正确!
令人惊讶的是,我把它改为左\B它的工作!
\B检测以字母、数字或下划线为界的短语。但在这里它的工作原理是左\b!而我不知道为什么!
As you see it detects phrases which have not been bounded with letters, digits or underscore

rggaifut

rggaifut1#

你对\b的理解是不正确的。它匹配一侧有“单词”字符而另一侧有“非单词”字符的位置。$不是单词字符,因此它将仅匹配$前面紧跟着单词字符(字母数字,在一些实现中加上e.例如@_

相关问题