欢迎您的到来,在此只记录本人理解的信息。如果您不能理解的话,可以参考一下官方的文档或者是参考一下别人的文档。
如果本文对您有帮助的话。那是我的荣幸。可以点个赞,让我知道本文对您有帮助。
一. 正则表达式描述
描述的是一种字符串匹配的模式。简单来说就是用具备一定特征意义的表达式对字符串进行检查匹配。将符合条件的子字符串返回来。
在Python中正则表达式的模块是:re。 在Python使用正则表达式的话,要先引入:import re。目前基本安装好python3环境了的话,都会自带有这个模块了的。如果没有的话就请自行安装:pip install re
二. 正则表达式的使用
单字符的匹配
匹配某个字符 match
match语法:re.match(表达式,匹配的字符串)。如匹配成功re.match方法返回一个匹配的对象,否则返回None。
功能:只会从匹配字符串的开头匹配。如果表达式在匹配字符串的开头都没有匹配到值的话,那么匹配到的值就为None。
第一种例子:
import re
a = re.match('long', 'my name is long')
print(a) # None
第二种例子:
import re
b = re.match('py', 'python')
# 匹配到值是一个object对象。
print(b) # <re.Match object; span=(0, 2), match='py'>
# 输出匹配到的值
print(b.group())
匹配整个字符 search
search语法:re.search(表达式,匹配的字符串)。 如匹配成功re.search方法返回一个匹配的对象,否则返回None。
功能:匹配整个字符串。只会返回第一个匹配成功的信息。
import re
s = re.search('long', 'my name is long long')
print(s) # <re.Match object; span=(11, 15), match='long'>
# 输出匹配到的信息的位置
print(s.span()) # (11, 15)
match 与 search 的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None。re.search匹配整个字符串,直到找到一个匹配就返回。
检索和替换 sub
sub语法:re.sub(pattern, repl, string, count=0, flags=0)
解释参数:
- pattern:正则中的模式字符串。
- repl:替换的字符串,也可以作为一个函数使用。
- string:需要被查找替换的原始字符串。
- count:模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
简单用法
import re
a = re.sub('long', "往事", "My name is long")
print(a) # My name is 往事
相关用法
search
str1 = 'content="http://www.juejin.cn?asdfasdfsadf"'
resp = re.search('http\:\/\/[\w\-\/\.]+\?[\w]+', str1)
# 匹配到 http://www.juejin.cn?asdfasdfsadf
print(resp.group())
匹配邮箱
[0-9a-zA-Z_]{0,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{1,3}