office数据分析Python

【使用Python处理文本2】

2021-06-09  本文已影响0人  西布鲁克

正则表达式

正则表达式是一个强大的文本处理工具,在Linux系统中使用广泛,Linux系统中大部分文本处理工具都支持正则表达式,如grep、sed和awk

基本语法

利用re库处理正则表达式

在Python中,标准库的re模块用来处理正则表达式,它能够顺利处理Unicode和普通字符串。这个模块包含了与正则表达式相关的函数、标志和一个异常。

最常用的是re模块下的findall函数,用来输出所有符合模式匹配的子串

import re

data="What is the difference between python 2.7.13 and python 3.6.0?"
re.findall('python [0-9]\.[0-9]\.[0-9]',data)

如果定义了错误的正则表达式,re模块会抛出一个异常

python中有两种使用正则表达式的方法

import re

data="What is the difference between python 2.7.13 and python 3.6.0?"
re_obj=re.compile('python [0-9]\.[0-9]\.[0-9]',flags=re.IGNORECASE)
re_obj.findall(data)

编译版本的代码相对而言具有更好的程序执行性能

常用的re方法

匹配类方法

修改类方法

大小写不敏感

re.findall('python [0-9]\.[0-9]\.[0-9]',data,flags=re.IGNORECASE)

非贪婪匹配

比如要匹配以'Beautiful'开头并且以点号结尾的字符串,默认情况下正则表达式使用贪婪匹配,就是如果有多个字符串都符合这一规则,尽可能匹配长的字符串,如果要使用非贪婪匹配,需要在匹配字符串时加上一个"?"

text="Beautiful is better than ugly. Explicit is better than implicit."
re.findall('Beautiful.*\.',text) #贪婪匹配
re.findall('Beautiful.*?\.',text) #非贪婪匹配
上一篇 下一篇

猜你喜欢

热点阅读