常用的元字符:
. ,\w,\s,\d,\D,\b,^,
,
∗
,
+
,
?
,
n
,
n
,
,
n
,
m
,
[
]
∗
:
从
…
…
开
始
∗
,*,+,?,{n},{n,},{n,m},[] *^:从……开始 *
,∗,+,?,n,n,,n,m,[]∗:从……开始∗:从……结尾
.:匹配任何一个字符
[]:匹配[]里面列举的字符,只匹配一位
\w:匹配单词字符 a-z A-Z 0-9 _
\s:匹配空白
\d:匹配数字 0-9
{n}:匹配个数
\W:匹配非单词字符
*:匹配0次或多次
{}:指定匹配次数
?:匹配0次或1次
+:匹配1次或多次
使用:
匹配数字(单个)用\d
import re
st_new='123asd'
ret1=re.match('\d',st_new)
print(ret1.group())
非数字字符 \D
import re
str_new='a123asd'
ret2=re.match('\d',str_new)
print(ret2.group())
.匹配 只要是字符,就可以匹配
import re
ret3=re.match('t.w','t2w13')
print(ret3.group())
匹配指定个数字符
import re
ret4=re.match('t.{n}w','t2222w13')
print(ret4.group())
[]匹配,只匹配一位
import re
ret5=re.match('[asd]','asd')
print(ret5.group())
*匹配,匹配多位
import re
ret6=re.match('[asd]*','aaqwe')
print(ret6.group())
import re
ret7=re.match('[asd]{3}','aaaqwe')
print(ret7.group())
\s 匹配空格,匹配任何不可见字符 [\t\n\r\f]等同
import re
ret8=re.match('name\s1','name\t1')
print(ret8.group())
\w包括汉字
import re
ret9=re.match('[a-zA-Z0-9_]','az1_')
print(ret9.group())
import re
ret10=re.match('\w','哈哈')
print(ret10.group())
*与+匹配
import re
ret11=re.match('ra[b]*','rabbit')
ret12=re.match('ra[b]+','rabbit')
print(ret11.group())
print(ret12.group())
*?匹配
import re
ret13=re.match('http[s]?','http')
ret14=re.match('http[s]?','https')
print(ret13.group())
print(ret14.group())
{}匹配具体的位数 匹配区间位数{1,6} 匹配至少位数{6,}(至少有6位)
import re
ret15=re.match('h[t]{6}','htttttttttps')
print(ret15.group())
贪婪匹配,尽可能多的匹配
非贪婪匹配{}+?
^匹配字符串以XXXX开始
import re
ret16=re.match('^[0-9].*','hello python')#报错
ret17=re.search('^[0-9].*','1hello world 1python')
print(ret16.group())
print(ret17.group())
search:匹配整个字符串,直到找到一个匹配
import re
ret18=re.search('^[0-9].*','1hello world 1python')
print(ret18.group())
$匹配字符串以X结尾 必须是以X结尾,否则报错
import re
ret19=re.search('1[345789][0-9]{8}9$','13546824862')#报错
ret20=re.search('1[345789][0-9]{8}9$','13546824869')
print(ret19.group())
print(ret20.group())
以1开头,9结尾的电话实例
import re
ret21=re.search('^1[345789][0-9]{8}9$','13546824862')#报错
ret22=re.search('^1[345789][0-9]{8}9$','13546824869')
print(ret21.group())
print(ret22.group())
匹配字符串除 除4以外都可以,如果是4则报错
import re
ret23=re.search('^1[345789][0-9]{8}[^4]','13546824862')#报错
ret24=re.search('^1[345789][0-9]{8}[^4]','13546824864')
print(ret23.group())
print(ret24.group())