文章目录


参考视频:https://ke.qq.com/course/320021

一、re 标准库

Python正则表达式_正则表达式

​1.1.re.compile方法​

语法:re.compile(pattern, flags=0)

pattern 指的是正则表达式。flags是标志位的修饰符,用于控制表达式匹配模式

示例:

import re

s = 'this is test string'
pattern = re.compile('this') # 定义一条正则
result = pattern.match(s)
print(result.group()) # 匹配成功后,result对象会增加一个group()方法,可以用它来获取匹配结果

​1.2.re.match()方法——推荐​

import re

s = 'this is test string'

result = re.match('this', s) # 从左往右匹配;如果换成test会失败
if result:
print('匹配成功')
print(result.group())
else:
print('匹配失败')

二、代表字符

Python正则表达式_数字字符_02

>>> import re
>>> s = 'hello world'
>>> result = re.match('.', s) # 匹配单个字符
>>> result.group()
'h'

>>> result = re.match('[ah]', s) #匹配中括号中的任意一个字符
>>> result.group()
'h'

>>> result = re.match('[a-z]', s) #匹配所有小写字母
>>> result.group()
'h'

>>> result = re.match('\D', s) #匹配非数字字符
>>> result.group()
'h'

三、原始字符串符号“r”

“r”表示原始字符串,有了它,字符串里的特殊意义符号就会自动加转义符
示例:

s = "123\\abc"
result = re.match(r"123\\abc", s)
print(result)

Python正则表达式_数字字符_03

四、代表数量

Python正则表达式_字符串_04
Python正则表达式_数字字符_05

>>> result = re.match('.*', s)    # 匹配所有
>>> result.group()
'hello world'

五、代表分组

Python正则表达式_数字字符_06

六、示例

import re

email = "devops@163.com"
result = re.match("^[a-z]+@[163|qq]+\.[com|cn|org]+$", email)
if result:
print("邮箱格式正确")
else:
print("邮箱格式错误")