python自然语言处理——3.7 用正则表达式为文本分词
微信公众号:数据运营人
本系列为博主的读书学习笔记,如需转载请注明出处。
第三章 加工原料文本
3.7 用正则表达式为文本分词正则表达式的基础语法分词的简单方法
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)
None
re.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