绝对干货python正则,理论加实践(python正则r)
正则表达式是一种用于匹配和处理文本的强大工具。在Python中,可以使用re模块来操作正则表达式。下面是一些常用的正则表达式语法和函数:
正则表达式语法:
- 字符类:用方括号[]表示,匹配方括号中任意一个字符,例如:[abc]可以匹配a、b或c。
- 字符集合:用\d表示任意一个数字,\w表示任意一个字母或数字,\s表示任意一个空格或制表符。
- 重复:用*表示重复0次或多次,+表示重复1次或多次,?表示重复0次或1次,{m}表示重复m次,{m,n}表示重复m到n次。
- 分组:用圆括号()表示,可以将匹配的内容分组,例如:(abc)可以匹配abc。
- 转义字符:用反斜杠\来转义特殊字符,例如:\*可以匹配*字符。
re模块常用函数:
- re.match(pattern, string):从字符串开头匹配正则表达式,返回匹配对象或None。
- re.search(pattern, string):在字符串中搜索正则表达式,返回第一个匹配对象或None。
- re.findall(pattern, string):在字符串中搜索正则表达式,返回所有匹配的字符串列表。
- re.sub(pattern, repl, string):将字符串中匹配正则表达式的部分替换为指定的字符串。
- re.split(pattern, string):根据正则表达式将字符串分割成多个部分,返回分割后的字符串列表。
下面是一个简单的示例代码,展示如何使用正则表达式在字符串中匹配手机号码:
import re
pattern = r'1[3-9]\d{9}' # 定义正则表达式,匹配手机号码
string = '我的手机号码是:13812345678,你的是15887654321' # 待匹配的字符串
match_obj = re.search(pattern, string) # 在字符串中搜索正则表达式
if match_obj:
print(match_obj.group()) # 输出匹配到的手机号码
else:
print('未匹配到手机号码')
在上面的代码中,我们首先定义一个正则表达式,用于匹配手机号码。然后,使用re.search()函数在字符串中搜索正则表达式,如果匹配到了,则输出匹配到的手机号码。如果未匹配到,则输出提示信息。