python3正则表达式元字符、转义符号

单个元字符:
.	  //匹配任意所有单个字符,匹配几个字符就有几个点。
^     //以什么什么开头。
$     //以什么什么结尾。
*     //匹配前面出现的字符0次到多次。
+     //匹配前面的字符出现1次到多次(和*号区分)。
?     //匹配前面的字符出现0次或1次。(?号还有更多的作用,待补充。)
{m}   //大括号表示指定前面的字符出现的次数。(m表示次数)
{m,n} //表示出现m到n次都可以(包括吗m、n次)。
[abc] //表示我们想匹配到的字符(a或b或c)。

转义符号:
\d    //表示我们匹配的内容是一串数字。相当于元字符: [0-9]+
\D    //表示我们匹配的内容是一串非数字。
\s    //表示匹配到的是一个字符串。 如: [a-z]+

重要:
()    //表示进行分组。 如(03|04)

常见组合:
^$    //表示某一行是空行。
.*?   //不使用贪婪模式。这里我们*号后面加上了?表示非贪婪模式。贪婪    模式是尽可能长的去进行匹配(如*号匹配,会将所有相同的字符都匹配上。)。
如:<a>a1</a><a>a2</a>
贪婪模式会全部匹配:<a>a1</a><a>a2</a>       .*
非贪婪模式会只匹配:<a>a1</a>                .*?

贪婪模式与非贪婪模式实例:

root@VM-0-7-ubuntu:~/python/zeropython3/13# cat yuan.py 
#

import re

a='<a>a1</a><a>a2</a>'

p1=re.compile('.*</a>')		#贪婪模式
p2=re.compile('.*?</a>')	#非贪婪模式

print (p1.match(a))
print (p2.match(a))
root@VM-0-7-ubuntu:~/python/zeropython3/13# python3 yuan.py 
<_sre.SRE_Match object; span=(0, 18), match='<a>a1</a><a>a2</a>'>
<_sre.SRE_Match object; span=(0, 9), match='<a>a1</a>'>
发布了48 篇原创文章 · 获赞 22 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lhh134/article/details/88127048
今日推荐