数量词的贪婪模式与非贪婪模式
正则表达式通常用于在文本中查找匹配的字符串。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位数