python re 正则表达式库的使用
程序员文章站
2022-07-10 08:22:04
...
- . 匹配任何字符,除了\n,占位符
-
匹配前一个字符0次或无限次
-
匹配前一个字符1次或无限次
.* 贪心算法
.*? 非贪心算法
() 括号内的数据作为结果返回
(\d+) 匹配纯数字
[] 对单个字符给出取值范围, [abc]:a.b.c [a-z]:a到z字符
[^] 对单个字符排除范围, [^abc]:非a或b或c
| 或, abc|def:abc或def
{m} 扩展前一个字符m次, ab{2}c:abbc
^ 匹配字符串开头
$ 匹配字符串结尾
\d 数字,等价于[0-9] -
2.正则表达式常用方法
findall:匹配符合规则的内容,返回结果的列表
search: 匹配并提取第一个符合规则的内容,返回一个正则表达式对象(object)
.group(2) 取第二个
匹配一个内容时,用search,提高效率
sub: 替换符合规律的内容,返回替换后的值
re.sub("xx(.*?)xx","替换为该内容", 原字符串)
3.列子
a = “xuufhxxixxaasfasxxlovexxasdasdaxxyouxxasdasa”
print(re.findall("xx.*xx", a))
>>>['xxixxaasfasxxlovexxasdasdaxxyouxx']
print(re.findall("xx.*?xx", a))
>>>['xxixx', 'xxlovexx', 'xxyouxx']
print(re.findall("xx(.*?)xx", a))
>>>['i', 'love', 'you']
-
re.S的使用
a = “”“xuufhxxixxaasfasxx
lovexxasdasdaxxyouxxasdasa”""print(re.findall(“xx(.*?)xx”, a, re.S))
>>>[‘i’, ‘love’, ‘you’]作用:使‘.’号匹配换行符(\n)
扩展: re.I 忽略大小写
re.M ^字符能将每行当作字符串匹配开始
5.当表达式有特殊符号时,用r转义
r(‘正则表达式’)
6.正则表达式的两种使用方法
# 一次操作
a = re.search(r’xxx’, str)
# 正则表达式需要多次使用
b = re.compile(r'xxx')
a = b.search(str)