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开始,代表输出第一个列表元素

posted @ 2021-06-28 10:07  JJJmk  阅读(138)  评论(0)    收藏  举报