正则表达式深入

^:匹配字符串的开头

$:匹配字符串的末尾

.匹配任意字符,除了换行符

[....]用来表示一组字符如[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匹配任意空白字符等价于[ f]

S匹配任意非空白字符

d匹配任意数字等价于[0-9]

D匹配任意非数字

A匹配字符串开始

匹配字符串结束

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"])

原文地址:https://www.cnblogs.com/my334420/p/6405177.html