python之正则表达式

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

在程序中我们可以使用正则表达式匹配出符合规则的字符串数据。

正则表达式的元字符:

1.匹配单个字符的元字符:

元字符  功能
. 匹配一个除\n外的任意字符
[] 匹配[]中列举出来的字符,只要在[]中存在则匹配成功
\d 匹配数字,即0-9
\D 匹配非数字,即除0-9之外的所有字符
\s 匹配空白,即空格、\t、\r(回到当前行的行首)、\f(分页符)、\n
\S 匹配非空白字符
\w 匹配非特殊字符,即0-9、a-z、A-Z,_和汉字
\W 匹配特殊字符,除0-9、a-z、A-Z,_和汉字外的字符
\b 匹配字符串中空格后的第一个非特殊含义的字符

2.匹配多个字符的元字符:

元字符 功能
* 匹配任意一个出现0次或多次的字符
+ 匹配任意一个出现一次或多次的字符,即至少出现1次的字符
匹配一个出现1次或0次的字符
{m} 匹配一个出现m次的字符
{m,} 匹配一个至少出现m次的字符
{m,n} 匹配一个出现次数在m到n之间的字符

3.匹配开头和结尾的元字符:

元字符 功能
^ 匹配以指定字符串开头的字符串
$ 匹配以指定字符串结尾的字符串

4.匹配分组的元字符:

元字符 功能
| 匹配满足|左右两边的任意一个表达式的字符串
() 将括号中的字符作为一个分组
\num 通过num引用分组,分组顺序从第一个左括号开始为1,依次递增
(?P<name>) 给分组起一个别名
(?P=name) 通过别名引用分组

5.正则表达式的高阶函数:

方法 功能
match() 从头开始匹配符合规则的字符串
search() 查找第一个符合匹配规则的子串
findall() 查找出所有符合匹配规则的子串
split() 将字符串以指定的匹配规则进行分割,
并返回一个分割后的列表
sub()  通过匹配规则找到字符串中符合规则的子串,
并将子串替换成指定的新字符串

6.正则表达式高阶函数的应用:

1.match()函数的应用代码如下:

importreprint(re.match(r'\d.', '123124512').group())print(re.match(r'\d*', '123124512').group())print(re.match(r'\d+', '12312').group())print(re.match(r'\D+', '```12312').group())print(re.match(r'\w+', '```12312'))print(re.match(r'\W+', '```12312').group())

2.search()函数的应用代码如下:

print(re.search(r'[a-zA-Z]+', '1abc2ABC').group())print(re.search(r'[a-zA-Z]{3}', '1abc2ABC').group())

3.findall()函数的应用代码如下:

print(re.findall(r'[a-zA-Z]+', '1abc2ABC3def4DEF'))

4.split()函数的应用代码如下:

print(re.split(r':|\.', 'http://www.baidu.com'))

5.sub()函数的应用代码如下:

print(re.sub(r'[A-D]+', '你好啊', '1anbc2ADC3456'))
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看