在python中,我们可以使用re模块来使用正则表达式。
正则表达式使用\对特殊字符进行转义,因为python本身也是用\作为转义,所以在使用正则的时候会出现这样的情况,'python\\.org',有两个斜杠,为了避免出现这种情况,我们可以使用如下方法:
r'python\.org'
re模块一些常用的方法。
findall
以列表形式返回所有匹配的字符串,如果没有匹配的就返回一个空列表。
还可以指定字符串的开始位置和结束位置。
import re string = "abcd2135asdfasfd3425" re = re.compile(r'\d+') result1 = re.findall(string) result2 = re.findall(string,0,8) # 指定起始位置,从第一个字符到第八个字符,所以最后的数字不会匹配上 print(result1) print(result2) 结果: ['2135', '3425']
['2135']
search
只要找到一个匹配结果就返回,也可以指定起始位置。
import re string = "abcd2135asdfasfd3425" re = re.compile(r'\d+') result1 = re.search(string) result2 = re.search(string,0,6) # 指定起始位置,匹配从第1个字符到第6个字符中的数字 print(result1.group()) print(result2.group()) 结果: 2135 21
match
不指定起始位置,默认匹配字符串的头部。如果没有匹配上返回None。
import re string = "abcd2135asdfasfd3425" re = re.compile(r'\d+') result1 = re.match(string) result2 = re.match(string,2,6) # 从c开始匹配,又因为match是默认匹配字符串头部,而头部是c不是数字 result3 = re.match(string,4,6) # 从2开始匹配 print(result1) print(result2) print(result3.group()) 结果: None None 21
在线正则表达式匹配网站:https://regex101.com/ 我们可以在这里进行正则表达式的调试。