正则表达式深入
^:匹配字符串的开头
$:匹配字符串的末尾
.匹配任意字符,除了换行符
[....]用来表示一组字符如[amk]匹配‘a’'m'或'k'
[^...]不在[]中的字符
*:匹配0或多个的表达式
+:匹配1或多个表达式
?:匹配0或1个由前面的正则表达式定义的片段
{n}:匹配n次
string="192.168.2.2"
m=re.match("[0-9]{3}\.",string)
print(m.group)-----------192.
string="192.168.2.2"
m=re.match("([0-9]{3}\.){2}",string)
print(m.group)-----------192.168.
string="192.168.2.2"
m=re.match("([0-9]{1,3}\.){3}",string)
print(m.group)-----------192.168.2.
string="192.168.2.233333"
m=re.match("([0-9]{1,3}\.){3}\d{0-3}",string)
print(m.group)-----------192.168.2.233
{n,}:精确匹配n个前面表达式
{n,m}:匹配n-m次由前面的正则表达式定义的片段
a|b匹配a或b
\w匹配字母数字
\W匹配非字母数字
\s匹配任意空白字符等价于[\t\n\r\f]
\S匹配任意非空白字符
\d匹配任意数字等价于[0-9]
\D匹配任意非数字
\A匹配字符串开始
\Z匹配字符串结束
\z匹配字符串结束
\G匹配最后匹配完成的位置
常用的:
re.match(pattern,string)//从头匹配
re.search(pattern,string)、、匹配整个字符串,直到找到一个匹配
re.split()//将匹配到的格式当做分割点对字符串分割成列表
m=re.split("[0-9]","zy2zlj9sb4")
print(m)------------['zy','zlj','sb']
re.findall()//找到所有要匹配的字符并返回列表
m=re.findall("[0-9]","zy2zlj9sb4")
print(m)------------['2','9','4']
re.sub(pattern,repl,string,count,flag)//替换匹配到的字符
m=re.sub("[0-9]","|","zy2zlj9sb4",count=2)
print(m)-----------zy|zlj|sb4
匹配手机号:
phone_str=="13542615948"
phone_str1=="15542615948"
m=re.search("(1)([358]\d{9})",phone_str1)
print(m.group)
匹配IP:
ip="192.168.60.223"
m=re.search("\d{1-3}\.\d{1-3}\.\d{1-3}\.\d{1-3}",ip)
print(m.group)
匹配email:
email=“zy.zllj@334.com”
re.search(r"0-9.a-z]{0,26}@[0-9.a-z]{0,20}.[0-9a-z]{0,8}",emal)
print(m.group)
import re
re.match("[0-9"])==re.match("[0123456789"])
re.match("[a-zA-Z0-9"])