正则中的\b 与 \B
正则中的\b 与 \B
正则中的 \b 与 \B
- 任何字符都一个显性的位置,空格也有。
- 但是每个字符之间又有一个隐形的位置。
- 而 \b 则用来表示此隐形位置,如断言一样不匹配内容,但会影响匹配目标的结果
举个例子
It’s a nice day today
\b
匹配这样一个位置,就是它的前或后只能有一个为 \w
我想匹配 nice 这个单词除了使用 nice 匹配。还可以使用 \b
nice\b
。这样就获取到了单个完整的单词。
然而,需要匹配比如 nicely
时, nice 同样能匹配到, 但\b
nice\b
不行了。而\b
nice 可以了。引用上面的话 **\b**
** 匹配这样一个位置,就是它的前或后只能有一个为 ****\w**
,显然后面的 \b
没有满足这条规则。
> 而大写的\b, 也就是 \B。
要更加实用一些。
它匹配前后都为\w的目标
比如,转小驼峰连字符
1 |
|
注意看这里的 \B
, 如果不使用它。当我们传入的str
是大驼峰字符串。比如是 OnClick
,此表达式会将其转为 -on-click
。 这明显兼容性太差。加入\B
则可保证该表达式只对前后都有\w 的大写字母,进行 replace 操作, 自然不会去替换第一个大写字母了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!