广德做网站,成都网站建设方案,wordpress 屏蔽广告,一级a做爰片免费网站国产正则常见的三种功能#xff0c;它们分别是#xff1a;校验数据的有效性、查找符合要求的文本以及对文本进行切割和替换等操作。
1.元字符
所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符
元字符大致分成这几类#xff1a;表示单个特殊字符的#xff0c;表示…正则常见的三种功能它们分别是校验数据的有效性、查找符合要求的文本以及对文本进行切割和替换等操作。
1.元字符
所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符
元字符大致分成这几类表示单个特殊字符的表示空白符的表示某个范围的表示次数的量词另外还有表示断言的
1.1特殊单字符
英文的点.表示换行以外的任意单个字符\d 表示任意单个数字\w 表示任意单个数字或字母或下划线\s 表示任意单个空白符。另外还有与之对应的三个 \D、\W 和 \S分别表示着和原来相反的意思
import re#匹配所有数字txt 123d5sdf23
result re.findall(\d, txt)
print(result)
#输出[1, 2, 3, 5, 2, 3]
#匹配所有的数字、字母和下划线txt sdfw234_sdf12
result re.findall(\w, txt)
print(result)
#输出[s, d, f, w, 2, 3, 4, _, s, d, f, 1, 2]
1.2. 空白符
不同的系统在每行文本结束位置默认的“换行”会有区别。比如在 Windows 里是 \r\n在 Linux 和 MacOS 中是 \n
\r 回车符
\n 换行符
\f 换页符
\t 制表符
\v 垂直制表符
\s 任意空白字符
#获取每一行的开头
f open(hello.txt, r, encodingutf-8)
txt f.read()
print(txt)
#输出
#小明
#小红
#小月
result re.findall(\n\w*, txt)
print(result)
#输入[\n小红, \n小月]
1.3. 量词
在正则中英文的星号*代表出现 0 到多次加号代表 1 到多次问号?代表 0 到 1 次{m,n}代表 m 到 n 次
* 0到多次 1到多次
?0到1次
{m}出现m次
{m,} 出现至少m次
{m,n} m到n次
#寻找3个数字组合
txt 123 1 sfd 2342 aa 23g 342
result re.findall(\d{3}\s, txt)
print(result)
#输出[123 , 342 ]
4. 范围
| 或如ab|bc 代表ab或者bc
[...] 多选一括号中任意单个元素
[a-z]匹配a-z之间任意单个元素
[^...] 取反不能包括括号中的任意单个元素 #某个资源可能以 http:// 开头或者 https:// 开头也可能以 ftp:// 开头
txt http://www.baidu.com
result re.match((https?|ftp):\/\/, txt)
print(result.span())
#输出(0, 7)
2.量词与贪婪
2.1 贪婪模式
在正则中表示次数的量词默认是贪婪的在贪婪模式下会尝试尽可能最大长度去匹配
#贪婪匹配
txt aaabb
result re.findall(ra*, txt)
print(result)
#输出[aaa, , , ]
a* 在匹配开头的 a 时会尝试尽量匹配更多的 a直到第一个字母 b 不满足要求为止匹配上三个 a后面每次匹配时都得到了空字符串。
贪婪模式的特点就是尽可能进行最大长度匹配。
2.2 非贪婪模式
量词后面加上英文的问号 (?)正则就变成了 a*?这就是非贪婪模式
#非贪婪匹配
txt aaabb
result re.findall(ra*?, txt)
print(result)
#输出[, a, , a, , a, , , ]
非贪婪模式会尽可能短地去匹配
3.函数
3.1findall() 函数
findall() 函数返回包含所有匹配项的列表。
#findall() 这个列表以被找到的顺序包含匹配项txt China is a great country
x re.findall(China, txt)
print(x)
#输出[China]
3.2 search() 函数
search() 函数搜索字符串中的匹配项如果存在匹配则返回 Match 对象。
如果有多个匹配则仅返回首个匹配项如果未找到匹配则返回值 None
#search() 函数搜索字符串中的匹配项如果存在匹配则返回 Match 对象
txt China is a great country
x re.search(r\s, txt)print(第一个空格位置, x.start())
#输出第一个空格位置 5
3.3 split() 函数
split() 函数返回一个列表其中字符串在每次匹配时被拆分
#spilt 分割
txt China is a great country
x re.split(r\s, txt)
print(x)
#输出[China, is, a, great, country]
通过指定 maxsplit 参数来控制出现次数
#通过指定 maxsplit 参数来控制出现次数
txt China is a great country
x re.split(r\s, txt, 2)
print(x)
[China, is, a great country]
3.4 sub() 函数
sub() 函数把匹配替换为您选择的文本
#sub() 函数把匹配替换为您选择的文本
txt China is a great country
x re.sub(is, IS, txt)
print(x)
#输出China IS a great country
3.5 Match 对象
Match 对象是包含有关搜索和结果信息的对象。
注释如果没有匹配则返回值 None而不是 Match 对象。
Match 对象提供了用于取回有关搜索及结果信息的属性和方法
span() 返回的元组包含了匹配的开始和结束位置.string 返回传入函数的字符串group() 返回匹配的字符串部分
#正则表达式查找以大写 C 开头的任何单词
txt China is a great country
x re.search(r\bC\w, txt)
print(x.span())
#输出(0, 5)
#打印匹配的字符串部分
print(x.group())
#输出China
源码下载
若此文档不够详细可以参考十分钟学会python_哔哩哔哩_bilibili