正则表达式初窥
搜索字符串
match从头匹配 search匹配一次 findall查询所有 【finditer 迭代器形式返回next()显示第几个】
方法
split支持字符串截取
sub 替换字符串
group()表示拿到分组后的结果
import re
str = zhaoyu
re.match(str,"zhaoyu")#显示地址
re.match(str,"zhaoyu").group()#显示字符串
group用法[想提取的数据可用括号括起来]
res = re.match("\d+(567)\d+","152567444")
res
<_sre.SRE_Match object; span=(0, 9), match='152567444'>
res.group()
'152567444'
res.group(1)[第几个括号Juin写几]
'567'
正则表达式 str = zhaoyu [match从头匹配]
. 匹配任意符号(除了换行符\n)
re.match("....yu",str)
<_sre.SRE_Match object; span=(0, 6), match='zhaoyu'>
\d 表示数字
re.match ("\d","1111ddd")
<_sre.SRE_Match object; span=(0, 1), match='1'>
re.match ("\d\d\d","1111ddd")
<_sre.SRE_Match object; span=(0, 3), match='111'>
re.match("我今年\d\d岁了","我今年55岁了")
<_sre.SRE_Match object; span=(0, 7), match='我今年55岁了'>
re.match("我今年\d\d$","我今年55")
<_sre.SRE_Match object; span=(0, 5), match='我今年55'>
\D 表示非数字
re.match ("\D","@#$%^&")
<_sre.SRE_Match object; span=(0, 1), match='@'>
\w 表示匹配大小写字母
re.match ("\w\w\w","aVw")
<_sre.SRE_Match object; span=(0, 3), match='aVw'>
re.match ("\w\w\w","aV过")【各国语言】
<_sre.SRE_Match object; span=(0, 3), match='aV过'>
\W 表示匹配所有的特殊字符
re.match ("\W\W\W","+-")
<_sre.SRE_Match object; span=(0, 3), match='+-'>
re.match ("\W\W\W","+-A*")
\s 表示匹配空格 Tab \t
re.match ("\s\s\s"," ")
<_sre.SRE_Match object; span=(0, 3), match=' '>
re.match("\s","\n我今年55")
<_sre.SRE_Match object; span=(0, 1), match='\n'>
re.match("\s","\r我今年55")
<_sre.SRE_Match object; span=(0, 1), match='\r'>
\S 表示匹配非空格
re.match ("\S\S\S","LIU")
<_sre.SRE_Match object; span=(0, 3), match='LIU'>
^ 表示以xx开头
re.match ("^a.*","abcde")
<_sre.SRE_Match object; span=(0, 5), match='abcde'>
re.match ("^a*","abcde")
<_sre.SRE_Match object; span=(0, 1), match='a'>
re.match ("^a.","abcde")
<_sre.SRE_Match object; span=(0, 2), match='ab'>
$ 以什么结尾
re.match (".sd$","abcdsd")
<_sre.SRE_Match object; span=(0, 6), match='abcdsd'>
【以a开头以sd结尾】
re.match ("^a.sd$","abcdsd")
<_sre.SRE_Match object; span=(0, 6), match='abcdsd'>
\b 匹配单词
re.match(".\bgood\b.","get good day")
<_sre.SRE_Match object; span=(0, 12), match='get good day'
[01123456789] 【0-9】【a-z】只能用于数字字母[0-9a-zA-Z]
(开头是这些中的一个就可以匹配成功)
re.match ("[0\123456]\w*","0")
<_sre.SRE_Match object; span=(0, 1), match='0'>
>>> re.match ("[0\123456]\w*","5")
<_sre.SRE_Match object; span=(0, 1), match='5'>
re.match("[0-9a-zA-Z]","5aA10")
<_sre.SRE_Match object; span=(0, 1), match='5'>
\\表示
str = “c:\n\b”
* 匹配0-多
+匹配1-多
?匹配可以有,可以没有,但只多1位
{m} 表示m位
{m,} 表示至少m位
{m,n}表示在这个区间内,最少5位,最多8位
写在【】里表示取反
re.match("[^123asc]","123")
re.match("[^123asc]","vvv")
<_sre.SRE_Match object; span=(0, 1), match='v'>