正则表达式又叫规则表达式,是一种对文件操作的逻辑公式,用来检索,替换那些符合某个模式\规则的文本
一、基础语法
\d 代表数字0-9 只代表一个数字
\w 匹配a-z A-Z 0-9 以及 _
\s 匹配任何空白字符
\D 非数字,相当于[^\d]
\W 非a-z A-Z 0-9 以及 _
\S 非空白
. 代表任意字符
^ (多行模式匹配中匹配每一行的开头)匹配字符串开头
$ (多行模式匹配中匹配每一行的结尾) 匹配字符串的末尾
{m} 表示一个字符出现m次
{m,n} 表示一个字符出现 【m,n】次
{m,} 表示一个字符出现【m,正无穷)
+ 匹配一个字符出现1次或无限次 等价于{1,}
* 匹配一个字符出现0次或无限次 等价于{0,}
? 匹配一个字符出现0次或1次 等价于{0,1}
| 或 如果[]中出现,由于[]只能匹配一个字符,或中的元素采用从左到右匹配,匹配成功即结束
去掉[],全匹配
[] 表示匹配[]中的任意一个字符
[^] 表示取反,及非[]中的任意一个字符
例子:
import re
str="h4e25llo3666hhhh999999999"
f1=re.findall('\d{3,}',str)
# print(f1) ['3666', '999999999']
str1='h4epl6eplo'
f1=re.findall('\dep',str1)
# print(f1) #['4ep', '6ep']
str1='h4ep.l6epulo'
f1=re.findall('\dep\.',str1)
# print(f1) #['4ep.']
str="//common.cnblogs.com/scripts/jquery-20.min.js,/scripts/jquery-5296.js"
f1=re.findall('jquery-\d{1,}.\w{0,}\.js',str)
# print(f1) #['jquery-20.min.js', 'jquery-5296.js']
str='heppppppmllemoepm'
f1=re.findall("ep?m",str)
# print(f1) #['em', 'epm']
str='helkpleoypemp'
f1=re.finditer("e(oy|lk)p",str)
for i in f1:
print(i.group())
str='helloeakepme#'
f1=re.findall("e[a-zA-Z7-9$#]",str)
# print(f1) #['el', 'ea', 'ep', 'e#']