\b被称为单词边界,\B被称为非单词边界,\b与\B是非的关系。
python里面字母和数字有边界这一说,与英文单词的边界类似。
一个英文单词一般空格、换行、标点符号或者特殊符号来表示边界。
例如:
my name is lucy!
my的边界是空格和句子开头,name的边界也是空格,is的边界也是空格,lucy的边界有两个一个是空格一个是!
用\b匹配my和匹配lucy的代码如下:
import re
def test_operator():
print('匹配my:', re.findall('\\bmy\\b', 'my name is lucy!'))
print('匹配lucy:', re.findall('\\blucy\\b', 'my name is lucy!'))
if __name__ == '__main__':
test_operator()
pass
但是,如果想匹配lucy中的uc用\b是行不通的,用\b的反面\B最快捷,当然也可以用其他方法匹配,这里演示用\B,代码如下:
import re
def test_operator():
print('匹配uc:', re.findall('\\Buc\\B', 'my name is lucy!'))
if __name__ == '__main__':
test_operator()
pass