正则表达式中\b的理解

正则表达式中\b的理解

时间:2018-05-15 作者:zhankehua 评论:0 点击:4176 次

在python编写日志分析程序时,会用到正则表达式,一直对\b不是很了解。今天有时间做了个测试,对\b有了近一步了解。

现记录下了。

先看一下正则表达式的语法

2015430160820157.png


语法中说\b表示匹配\w和\W之间,这个如何理解呢?

\w表示的是[a-zA-Z0-9_],而\W表示的是非单词字符[^\w]。

那到底\b表示的是什么意思呢?那就测试一下吧。

#regex_b.py
# -*- coding:utf-8 -*-
#测试\b的用法
import re
thestr = u"This is a test string about -test?<teacher>单词边界,how to use [txt]"
pattern = r'\bt\w*\b'
regex = re.compile(pattern)
# strings = regex.split(thestr)
ls = regex.findall(thestr)
if ls:
    for s in ls:
        print s

运行输出:

test
test
teacher
to
txt

通过测试,我们可以知道\b就是符号(这里的符合包括空格、?、*、(等。)与单词之间的分隔。

但这里有一个疑问,一直未解决,那就是如果我使用re.split(r'\b',str)为什么就分不开呢(str='this is a test',按其原理,应该可以分开成每个单词)?以后再研究。

已有 4176 位网友参与,快来吐槽:

发表评论

必填

选填

选填

◎欢迎参与讨论,发表您的看法、交流您的观点。