为了账号安全,请及时绑定邮箱和手机立即绑定

什么是零宽单词边界??

什么是零宽单词边界??

正在回答

2 回答

四、 /b应用场景


4.1 基础应用 
“/b”一般应用在需要匹配某一单词字符组成的子串,但这一字符不能包含在同样由单词字符组成的更长的子串中。 
比如要替换掉一段英文中的单词“to”,而“today”显然不在替换的范围内,所以正则可以用“/bto/b”来限定。 
用得比较多的场景是在HTML标签的匹配中,用以区分相互包含的标签,比如要过滤掉<b>、</b>、<p…>、<img…>等标签,但要保留<br />标签,正则可以写成“<(/?b|p|img)/b

[^>]*>”。 
举例:统计以“,”分割的元素中“3”的个数 
string test = "137,1,33,4,3,6,21,3,35,93,2,98"; 
int count = Regex.Matches(test, @"/b3/b").Count; //结果:2


4.2特殊情况 
“/b”用在正则中,通常情况下都是表示单词边界的,只有在字符组中,它表示的是退格键,即 [a-z/b] 此处的“/b”表示的是退格键,而不是单词边界。

 


0 回复 有任何疑惑可以回复我~

“/b”匹配的只是一个位置,这个位置的一侧是构成单词的字符,另一侧为非单词字符、字符串的开始或结束位置。“/b”是零宽度的。

其实,说白了,就是单词的两侧啦

请看下面例子:

这是一个字符串:hello this is a test!

然后我们把正侧表达式\b 替换为_

得到结果如下:_hello_ _this_ _is_ _a_ _test_!

上面所有的_的位置都是原来的\b,这下明白了吧。^.^

4 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

什么是零宽单词边界??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信