的应用Python正则表达式库的实用示例

python re库是python用于正则表达式的三方库

目录

函数

re.compile

re.findall

re.search

re.sub

re.split

group([group1,….])

修饰符

正则表达式详情


函数

不进行转义re.compile(r’

r表示其后的字符串按原样表示,不使用转义字符

re.compile

该函数将创建一个正则表达式的对象,可以实现更有效率的复用。

import re
find_xx = re.compile('正则表达式',修饰符)

re.findall

该函数将会搜索所有满足条件的字符串

import re
r = re.findall('正则表达式',文本内容,修饰符)

返回值会因为正则表达式的不同而不同 共计三种情况

1. 如果正则表达式中有多个括号时,列表的元素为多个字符组合成的元组,元组中的字符串格式与括号数对应,内容与正则表达式顺序对应。

import re

test = '2018年的下半年, 9月份, 27日'
pattern = re.compile(r'(\d)+(年|月|日)')
res = pattern.findall(test)
print(res)

# 输出结果为:[('8','年'),('9','月'),('7','日')]

2.正则表达式中只有一个括号,列表元素为字符串时,则内容和括号中的正则表达式对应

import re
text = '2018年的下半年,9月份, 27日'
pattern = re.copile(r'\d+(年|月|日|)')
res = pattern.findall(text)
print(res)
# 输出结果: ['年', '月', '日']

3.当给出的正则表达式不带括号的时候,列表的元素为字符串,此时字符串为整个正则表达式匹配的内容。

import re

text = '2018年的下半年,9月份, 27日'
pattern = re.compile(r'\d{4}年|\d{1}月|\d{2}日')
res = pattern.findall(text)
print(res)
# 输出结果: ['2018年', '9月', '27日']

re.search

搜索第一个满足条件的字符串,查找到第一个停止

import re
find_xx = re.copile('正则表达式','修饰符')
res = re.search(find_xx,text)

re.sub

替换所有满足条件的字符串

详情:python re模块(正则表达式) sub()函数详解_leo的学习之旅的博客-CSDN博客_python sub函数

import re
text = 'hello 123 world 456'
replacedStr = re.sub("\d+","222",text)
print(replacedStr)
# 返回'hello 222 world 222'

 re.split

匹配分割string maxsplit是允许被分割成几个子串,默认是0最大化字串,如果是1则是从原本字符串中切出一个字串,其他字串整串返回。

import re
a = re.split('正则表达式','文本',[maxsplit=0])
print(a)

group([group1,….])

返回一个或者多个子组

import re
m = re.search('正则表达式','文本')
print(m.group(2))
# 返回第二个字串

修饰符

re修饰符 全称 功能
re.L LOCALE 使预定字符类\w\W\b\B\s\S取决于当前区域设定
re.M MULTILINE 多行模式,改变'^'和'$'的行为
re.S DOTALL 点任意匹配模式,改变'.'的行为
re.I IGNORECASE 忽略大小写
re.U UNICODE 是预定字符类\w\W\b\B\s\S\d\D取决于unicode定义的字符属性
re.X VERBOSE 详细模式。该模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。

正则表达式详情

Python 正则表达式 | 菜鸟教程 (runoob.com)

物联沃分享整理
物联沃-IOTWORD物联网 » 的应用Python正则表达式库的实用示例

发表评论