正则表达式 \b
引用网上一段话:
很多人不怎么理解正则中的 b 含义,看到上面一段话后,很多人还是不怎么理解 b 究竟是怎样的一个“位置”。 今天就来说说我的理解。 什么是位置It's a nice day today. 'I' 占一个位置,'t' 占一个位置,所有的单个字符(包括不可见的空白字符)都会占一个位置,这样的位置我给它取个名字叫“显式位置”。 注意:字符与字符之间还有一个位置,例如 'I' 和 't' 之间就有一个位置(没有任何东西),这样的位置我给它取个名字叫“隐式位置”。 “隐式位置”就是 b 的关键!通俗的理解,b 就是“隐式位置”。 此时,再来理解一下这句话:
我用我的话来翻译一下这句话:
此刻,有没有一种豁然开朗的感觉?有么有?有么有?有么有? 实例讲解就用 "It's a nice day today." 举例说明: 正确的正则:bniceb 分析:第一个 b 前面一个字符是空格,后面一个字符是 'n',不全是 w,所以可以匹配出 'n' 是一个单词的开头。第二个 b 前面一个字符是 'e',后面一个字符是空格,不全是 w,可以匹配出 'e' 是一个单词的结尾。所以,合在一起,就能匹配出以 'n' 开头以 'e' 结尾的单词,这里就能匹配出 "nice" 这个单词。 错误的正则:abnice 分析:我见过有人类似于这样来写正则,想要达到的目的是匹配出上一个单词以 'a' 结尾,下一个单词以 'n' 开头的部分,这里想匹配出 "a nice"。但是这个正则表达的可不是这个目的,b 前面是字符 'a',后面是字符 'n',两个都是“显式字符”,显然违背了 b 的含义,所以这就是个错误的表达式,匹配不出任何东西。想要匹配出 "a nice",正确的正则写法是:ab.bnice(不能换行) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |