正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
常用元字符:
re常用方法:
引入正则模块
import re
1.普通字符作为原子
#1.普通字符作为原子
pattern1 = 'python' #规则
string1 = 'R python hello world python java c'
print(re.search(pattern1,string1))#返回第一次匹配的对象及下标
输出结果为:
2.非打印字符作为原子(比如换行符)
pattern2 = '\n'#匹配换行符
string2 = '''
www.qq.com
www.baidu.com
'''
print(re.findall(pattern2,string2))
输出结果为:
3.通用字符作为原子
pattern3 = 'p\w' #规则,匹配以p开头的两个字符串,“\w”代表一个字母或数字或下划线
string3 = 'R python hello world python java c'
print(re.findall(pattern3,string3))
输出结果为:
pattern3 = 'p\w' #规则,匹配以p开头的两个字符串,“\w”代表一个字母或数字或下划线
string3 = 'R python hello world python java c'
#替换
print(re.sub(pattern3,'PY',string3))#用“PY”替换string3中以pattern3规则查找的字符,返回替换后的string3
输出结果为:
4.元字符
pattern4 = 'p\w{5}'#匹配5次'\w',pattern4需是不少于6个字母
string4 = 'R python hello world python aa pllp12y java c'
print(re.findall(pattern4,string4))
输出结果为:
pattern4 = 'p\w{5}'#匹配5次'\w',pattern4需是不少于6个字母
string4 = 'R python hello world python aa pllp12y java c'
#切割
print(re.split(pattern4,string4))
输出结果为:
5.实例:手机号码的验证
num=input('请输入您的手机号:')
pattern5 = re.compile(r'1[3456789]\d{9}$')
result = re.match(pattern5,num)
if result:
print('您的手机号是:',result.group())#group()匹配的内容
else:
print('您的手机号不合法,请重新输入')
输出结果为:
6.实例:验证邮箱
em=input('请输入您的邮箱:')
pattern6 = re.compile('\w+@\w+\.com|cn$')
result = re.match(pattern6,em)
if result:
print('您的邮箱是:',result.group())#group()匹配的内容
else:
print('您的邮箱不合法,请重新输入')
输出结果为:
7.文本提取
with open('text.txt',encoding='utf8') as f:
data = f.read()
pattern7 = '\d+\.\d+'
result = re.findall(pattern7,data)
print(result)
输出结果为:
其中text.txt的文档为下: