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

posted @ 2019-02-24 15:36  ly803744  阅读(1313)  评论(0编辑  收藏  举报