微信公众号:
本系列为博主的读书学习笔记,如需转载请注明出处。
第三章 加工原料文本
3.7 用正则表达式为文本分词
正则表达式的基础语法
正则表达式作为处理字符串的强大工具,拥有独特的语法和独特的处理引擎。
分词的简单方法
re模块作为python正则表达式的核心模块,对其语法进行介绍
使用re的一般步骤是
1.将正则表达式的字符串形式编译为Pattern实例2.使用Pattern实例处理文本并获得匹配结果(一个Match实例)3.使用Match实例获得信息,进行其他的操作。
操作:
import re # 将正则表达式编译成Pattern对象 pattern = re.compile(r'hello.*\!') # 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None match = pattern.match('hello, lily! How are you?') if match: # 使用Match获得分组信息 print (match.group())
hello,lily!
re.match(): 从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
import re print(re.match('hello','helloworld').span()) print(re.match('world','helloworld'))
(0,5)
Nonere.search():扫描正则字符串,并返回第一个成功的匹配位置
import re print(re.search('hello','helloworld').span()) print(re.search('world','helloworld').span())
(0,5)
(5,10)re.sub():替换字符串中的匹配项
import re phone = '029-55432907 # 这是一个座机号码' print(re.sub('\d','0',phone)) # 将数字替换为0 print(re.sub('#.*$','',phone)) # 将#以后的所有字符全部替换直到结束位置
000-00000000 # 这是一个座机号码
029-55432907