正则表达式B是什么意思?怎么⽤?
1.\b 在ASCII字符中代表退格键, 但是 \b 同时也是⼀个正则表达式的特殊符号
为了让RE编译器把 \b 当做你想匹配的字符串,⽽⾮⼀个退格键,需要⽤另外⼀个反斜线进⾏转义, \\b
2. \b代表字与字中间那个看不见的东西,如
here is a word
那么,这句中有好⼏个\b, 每个单词的前后都有⼀个\b.
所以你⽤ \bhere\b 可以匹配上⾯这个here,但如果here 不是⼀个单词,⽽是⼀个单词的⼀部分,如 adheread, 这样的话,⽤here 可以匹配,⽤\bhere\b就不能区配了,因为ad后⾯没有\b. 所以 adhere 中的here 不会被匹配。
总结: \b 就是⽤在你匹配整个单词的时候。如果不是整个单词就不匹配。你想匹配 I 的话,你知道,很多单词⾥都有I的,但我只想匹配I,就是“我”,这个时候⽤ \bI\b
\B就是反过来,代表⾮字间。类似\d代表数字, \D代表⾮数字。
3.我在⽤python⽤正则匹配的时候,想将内容按词汇进⾏匹配相应的结果,⼀直匹配不出来,后⾯查了⼀下\b的含义,发现将\b写成\\b就可以匹配出来。
如:
pattern = repile('\bI\b|\bII\b|\bIII\b|\bIV\b|\bV\b|\bVI\b|\bVII\b|\bVIII\b|\bIX\b')
print(pattern)
print(pattern.findall(keya["name"]))
if pattern.findall(keya["name"]):
data.append(keya)
这样写,匹配出来的结果为空,当写成这样⼦的时候:
regex匹配pattern = repile('\\bI\\b|\\bII\\b|\\bIII\\b|\\bIV\\b|\\bV\\b|\\bVI\\b|\\bVII\\b|\\bVIII\\b|\\bIX\\b')
print(pattern)
print(pattern.findall(keya["name"]))
if pattern.findall(keya["name"]):
data.append(keya)
匹配结果如下所⽰:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论