正则表达式

来源:互联网 发布:大数据比赛 编辑:程序博客网 时间:2024/06/05 11:47
摘要:python 中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块re。
基本使用过程:
import re #导入模块
result = re.match(正则表达式,要匹配的字符串) #使用match方法进行匹配操作。
result.group() #如果上一步匹配到的数据的话,可以使用group方法来提取数据。
字符 功能
. 匹配任意一个字符(除了\n)
[] 匹配[]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即空白,tab键
\S 匹配非空白
\w 匹配单词字符,即a-z,A-Z,0-9,_,汉字
\W 匹配非单词字符
* 匹配前一个字符出现0次或者无限次,即可有可无
+ 匹配前一个字符出现1次或者无限次,即至少一次
? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现从m次到n次
^ 匹配字符串的开头
$ 匹配字符串结尾,
| 匹配左右任意一个表达式
(a,b) 将括号中字符作为一个分组
\num 引用分组num匹配到的字符串
(?p<name>) 分组起别名
re模块的高级用法:
1. search: 一个需求分析,匹配文章阅读的次数
import re
ret = re.search(r"\d+","阅读的次数为9999")
ret.group()
返回的结果为:“9999”
2. 统计出python,c,c++相应的文章阅读的次数
ret = re.findall(r"\d+","python = 9999,c = 7890, c++ = 12345")
print(ret)
返回的是一个列表:["9999","7890","12345"]
3. sub 将匹配到的数据进行替换
re = re.sub(r"\d+","998","python = 997")
print(ret)
返回的结果为:python = 998
4. split根据匹配进行切割字符串,并且返回一个列表
ret = re.split(r":| ","info:xiaoming 33 shangdong")
print(ret)
返回的结果为:["info","xiaoming","33","shangdong"]
原创粉丝点击