#加载正则表示(regular expression)式,python的正则表达式引擎是用c语言写的,效率极高
import re
#编译正则表达式,正则表达式呗编译为模式对象,该对象拥有各种方法来操作字符串
p = re.compile(r'[a-z]+')
#加上r的意思是采用原始字符创来表达正则表达式,避免不必要的反斜杠麻烦,因为正则表达式使用'\\'表示匹配字符'\'
print('p is:',p)
m = p.match('fishc')
print("if m = p.match('fishc')\nthen m:",m)
print('m.group() is :',m.group())
print('m.start() is :',m.start())
print('m.end() is :',m.end())
print('m.span() is :',m.span())
print('注意!match()只检查正则表达式是否在字符串的起始位置,所以start()总是返回0,建议可以使用search()')
#match()只检查正则表达式是否在字符串的起始位置,所以start()总是返回0
print("p.match('>__
print("p.search('>__
##match()和search()都是返回第一个匹配结果,要查找所有匹配结果则用findall()
p = re.compile('\d+')
print('p is:',p)
k = p.findall('3只小甲鱼,15条腿,多出的3条在哪里?')
print("p.findall('3只小甲鱼,15条腿,多出的3条在哪里?'):",k)
##finditer()是将匹配对象作为一个迭代器返回
iterator = p.finditer('3只小甲鱼,15条腿,还有3条去了哪里?')
print('p.finditer()则生成迭代器')
for match in iterator:
print('match.span()',match.span())
网友评论