正则表达式深入

^:匹配字符串的开头

$:匹配字符串的末尾

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

[....]用来表示一组字符如[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"])

 

posted @ 2017-02-16 12:55  张兮兮  阅读(150)  评论(0编辑  收藏  举报