正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。(非python独有,但是python的re模块提供了实现,在python中写正则表达式几乎都用这个库)
样例展示:
这里要用到在线正则表达式测试。
右侧是常用的正则表达式,可以从待匹配的文本中匹配到相应的结果。
使用方法:
常用的匹配规则☆☆☆☆☆
后面会详细讲解一些常见规则的用法。
re.match
re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就会返回none。
最常规的匹配
re.match(pattern,string.flags=0)
这个函数有三个参数,第一个就是你所写的正则表达式,第二个是所要匹配的目标字符串,第三个是一个匹配模式。
import re
content='Hello 123 4567 World_This is s Regex Demo'
print(len(content))#要匹配的内容的长度
result=re.match('^Hello\s\d\d\d\s\d{4}\s\w{10}.*Demo$',content)
#^、$分别代表匹配一行字符串的开头和结尾,\s:任意空白字符,\d:任意数字,{n}:匹配n个前面(此处为数字)的表达式
# \w匹配字母、数字或下划线 .(点号)匹配任意字符
print(result)
print(result.group())#返回匹配结果
print(result.span())#匹配结果的范围
运行结果
泛匹配
import re
content='Hello 123 4567 World_This is s Regex Demo'
result=re.match('^Hello.*Demo$',content)
#.*可以匹配中间的所有字符
print(result)
print(result.group())#返回匹配结果
print(result.span())#匹配结果的范围
运行结果,和上面是一样的。所以“.*”是经常使用的方式,因为比较方便。
匹配目标
import re
content='Hello 123 4567 World_This is s Regex Demo'
result=re.match('^Hello\s(\d+)\s.*Demo$',content)
#把需要匹配的目标用()括起来,然后指定左右端点,此处是两个空格\s
print(result)
print(result.group(1))#返回匹配结果,也就是第一个()其中的内容:123
print(result.span())#匹配结果的范围