python re包
1)正则表达式含义
. # 点可代表一切字符
\ # 起转义作用
[...] # 指代方括号中的任意字符
[^xx]#指不包含xx
\d # 指代数字0-9
\D # 指代非数字
\s # 指代一切空格,包括tab制表符、空格、换行等
\S # 指代非空格
\w # 指代大小写字母、数字和下划线
\W # 指代非大小写字母、数字和下划线
* # 匹配前面字符 >=0 次
+ # 匹配前面字符1次及以上
? # 匹配前面字符0次或1次
{m} # 匹配m次
{m,n} # 匹配m到n次
{m,} # 至少匹配m次
关于re的match、search、findall:
match:从开头位置匹配,只匹配一次,开头匹配不上,则不继续匹配 a,b,\w+
match(a,"abcdef") 匹配a
re.match("a","abcdef").group()
'a'
match(b,"abcdef")
print re.match("b","abcdef")
None
match("\w+","abcdef")
search ,从左往右依次任意位置匹配,只匹配一次,匹配不上则不继续匹配 a ,b,\w+
re.search("a","abcdef abc 123 456").group()
'a'
re.search("b","abcdef abc 123 456").group()
'b'
re.search("\w+","abcdef abc 123 456").group()
'abcdef'
findall
注:findall 返回列表 ,列表不能group()
print re.findall(r"b","abcdef abc 123 456")
['b', 'b']
print re.findall(r"a","abcdef abc 123 456")
['a', 'a']
print re.findall(r"\w+","abcdef abc 123 456")
['abcdef', 'abc', '123', '456']
总结:
match 必须从开始匹配上,则输出结果,匹配不到则返回none
search 从任意位置开始匹配,匹配一次成功则输出,后面不继续匹配
以上两种都有group()同group(0),全部打印,group(1)匹配第一个元祖
findall 分组 ()下标从0开始,代表输出第一个列表元素

浙公网安备 33010602011771号