python(5)-正则表达式

zz

数量词的贪婪模式与非贪婪模式

正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。

 

re.compile()

>>> exp = re.compile("[a-z]")     #生成要匹配的正则对象
>>> m = exp.match('bigtext')       
>>> print(m.group())
b

匹配IP

string = "192.168.0.1"
m = re.match("([0-9]{1,3}\.){3}\d{1,3}", string)
print(m.group())

匹配手机号

#匹配手机号

phone1 = "hey my name is zhangsan, and my phone number is 13651053467"
phone1 = "hey my name is zhangsan, and my phone number is 15811784456"
m = re.search("(1)([3587]\d{9})", phone1)  #第一组匹配第一个数字,第二组匹配第二个数字,第三组匹配剩下的9位数
posted @ 2016-03-13 23:46  黄小墨  阅读(315)  评论(0编辑  收藏  举报