正则表达式的简单使用样例。参考资料见:http://www.runoob.com/python/python-reg-expressions.html
import re
str = 'www.google.com.'
m = re.match('www', str)
m1 = re.match('google', str)
print(m.group(0)) #输出:www
print(m1) #输出:None
# 从字符串的起始位置匹配,如果不是起始位置匹配成功的话,match()就返回none。
m2 = re.search('www\.(.*)\.', str)
m3 = re.search('www\.(.*?)\.', str)
print(m2.group(0) + ' ' + m2.group(1)) #输出:www.google.com. google.com
print(m3.group(0) + ' ' + m3.group(1)) #输出:www.google. google
#re.search 扫描整个字符串并返回第一个成功的匹配。
phone = "2004-959-559 # 这是一个国外电话号码"
# 删除字符串中的 Python注释
num = re.sub(r'#.*$', "", phone)
# 删除非数字(-)的字符串
num = re.sub(r'\D', "", phone)
print("电话号码是: " + num) # 输出:电话号码是: 2004-959-559
print ("电话号码是 : "+ num) #输出:电话号码是 : 2004959559
# re.sub用于替换字符串中的匹配项。
m4 = re.findall('w\.(.*?)\.', str)
print(m4) #返回的是一个数组,输出: ['google.com']
#在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
m5 = re.finditer('ww\.(.*?)\.', str)
for match in m5:
print (match.group(0)) #输出:ww.google.
print(match.group(1)) #输出:google
#和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
import re
print(re.split('\W+', 'runoob, runoob, runoob.'))
# ['runoob', 'runoob', 'runoob', '']
print(re.split('(\W+)', ' runoob, runoob, runoob.'))
# ['', ' ', 'runoob', ', ', 'runoob', ', ', 'runoob', '.', '']
print(re.split('\W+', ' runoob, runoob, runoob.', 1))
# ['', 'runoob, runoob, runoob.']
print(re.split('a+', 'hello world')) # 对于一个找不到匹配的字符串而言,split 不会对其作出分割
# ['hello world']
# split 方法按照能够匹配的子串将字符串分割后返回列表
pattern = re.compile('aa')
print(re.split(pattern, 'bbaaccaadd'))
# ['bb', 'cc', 'dd']
# compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
# re.compile(pattern[, flags])