什么是零宽单词边界??

来源:10-1 [JavaScript]正则表达式

NeverSayGoodbye

2015-11-27 23:26

什么是零宽单词边界??

写回答 关注

2回答

  • meow_meow
    2016-02-12 19:37:00

    四、 /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”表示的是退格键,而不是单词边界。

     


  • 零零拾
    2015-12-08 14:26:55

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

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

    请看下面例子:

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

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

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

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

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281100 学习 · 1020 问题

查看课程

相似问题