正则表达式re
1、使用流程
1、创建编译对象 :p = re.compile("正则表达式")
2、对字符串匹配 :r = p.match("字符串")
3、获取匹配结果 :print(r.group())
2、常用方法
1、match(s) :字符串开头的第1个,返回对象
2、search(s):从开始往后找,匹配第1个,返回对象
3、group() :从match或search返回对象中取值
4、findall():所有全部匹配,返回一个列表
3、表达式
. 匹配任意字符(不能匹配\n)
\d 数字
\s 空白字符
\S 非空白字符
[...] 包含[]内容 :A[BCD]E --> ABE ACE ADE
\w 字母、数字、_
* 0次或多次
? 0次或1次
+ 1次或多次
{m} m次
{m,n} m-n次 AB{1,3}C --> ABC ABBC ABBBC
贪婪匹配(.*) :在整个表达式匹配成功的前提下,尽可能多的匹配*
非贪婪匹配(.*?) :在整个表达式匹配成功的前提下,尽可能少的匹配*
import re s = ‘asdffbrvgfbxdfcasdghxgwerfas2wqr5as3rtgfsw4tytgr‘ p = re.compile(‘as‘) r = p.match(s) r2 = p.search(s) print(r) #<re.Match object; span=(0, 2), match=‘as‘> print(r.group()) #as print(r2.group()) #as print(p.findall(s)) #[‘as‘, ‘as‘, ‘as‘, ‘as‘] s = "A B C D" p1 = re.compile(‘\w+\s+\w+‘) print(p1.findall(s)) # [‘A B‘,‘C D‘] p2 = re.compile(‘(\w+)\s+\w+‘) #[‘A‘, ‘C‘] # 第1步 :[‘A B‘,‘C D‘] # 第2步 :[‘A‘,‘C‘] print(p2.findall(s)) #[‘A B‘, ‘C D‘] p3 = re.compile(‘(\w+)\s+(\w+)‘) # 第1步 :[‘A B‘,‘C D‘] # 第2步 :[(‘A‘,‘B‘),(‘C‘,‘D‘)] print(p3.findall(s)) #[(‘A‘, ‘B‘), (‘C‘, ‘D‘)]
原文:https://www.cnblogs.com/hongliangzhao/p/12551476.html