Python re模块学习教程
的有关信息介绍如下:Python re模块使用正则表达式处理文本的一个经典模块,衍生于Perl的正则表达式。经典函数有findall(),search(),finditer(),match()等,用于查找,匹配。也有split(),escape()等不常用的函数。各个对象又有相关的属性,如flags等。
导入re模块
#导入正则表达式模块
import re
再来一个简单的例子演示
#简单演示
s='123abc123abc123abc'
print s
print re.findall(r'123',s)
#'r'...''表示raw字符串
#功能字符:'.','*','?','^','$','/'
#分界符:'[',']','(',')','{','}'
#转义字符:'\d','\w','\s','\b'
#'|'表示或
s='I have a pen and I have a apple'
print s
print re.findall(r'I have a pen|apple',s)
print re.findall(r'I have a (?:pen|dog)',s)
使用无捕获组与一般或'|'的区别
无捕获组使用'(?:...)'格式
#无捕获组:'(?:)'
s='ababababba babab babababab'
print re.findall(r'/b(?:ab)+/b',s)
#'.'匹配除换行符之外的所有字符,若选用re.S则包括所有字符
s='123\n456\n789'
print s
print re.findall(r'.+',s)
print re.findall(r'.+',s,re.S)
#'^'匹配开头'$'匹配结尾
#'\d'匹配数字
#'\D'匹配非数字
#'\w'匹配字母和数字
#'\W'匹配非字母和数字
#'\s'匹配空格符、制表符、回车符等表示分隔意义的字符
#'\S'匹配非间隔符
#'\A'匹配开头
#'\Z'匹配结尾
s='123\nabc\n123'
print s
print re.findall(r'^\d+',s,re.M)
print re.findall(r'\A\d+',s,re.M)
print re.findall(r'\d+$',s,re.M)
print re.findall(r'\d+\Z',s,re.M)
匹配边界有'\s'和'\b'
两者的不同在于'\s'返回边界‘ ’
#'\b'匹配边界,'\s'匹配边界
s='abc abc abc abcabcabc'
print s
print re.findall(r'\babc\b',s)
print re.findall(r'\sabc\s',s)
#'\B'匹配非边界
print re.findall(r'\Babc\w+',s)