首先使用re模块的compile()方法将正则表达式编译生成正则表达式对象,然后再使用正则表达式对象提供的方法进行字符串处理,使用编译后的正则表达式对象可以快速的完成字符串处理。其字符串处理主要包括查找、匹配、替换、搜索和分割,这些也是比较常用的操作,具体方法为findall、match、sub、search、split,下面通过几个例子来做简单说明。
>>> import re
>>> text="Anhui normal university!"
>>> pattern=re.compile(r'\bn\w+\b') #编译生成正则表达式对象。
>>> pattern.findall(text)#查找以n开头的单词。
['normal']
>>> import re
>>> text="I run quickly,you run slowly."
>>> pattern=re.compile(r'\w+ly') #编译生成正则表达式对象。
>>> pattern.findall(text)#查找以ly结尾的单词,即字符串中所有副词。
['quickly', 'slowly']
>>> import re
>>> text="I run quickly,you run slowly."
>>> pattern=re.compile(r'\b[a-zA-Z]{3}\b')#查找长度为3位的单词。
>>> pattern.match(text)#从字符串开头开始匹配,不成功则无返回值。
>>> pattern.search(text)#在整个字符串搜索,成功则返回结果。
<_sre.SRE_Match object; span=(2, 5), match='run'>
>>> import re
>>> text="I run quickly,you run slowly."
>>> pattern=re.compile(r'\b[a-zA-Z]{3}\b')
>>> pattern.sub('*',text)#将长度3位的单词替换位’*’
'I * quickly,* * slowly.'
>>> import re
>>> pattern=re.compile(r'[\s,.\d]+')#根据正则化式进行编译生成正则对象。
>>> text="I am in house, with lots of pepole. yes,no. 1china 2USA"
>>> pattern.split(text)#按照空白、’,’、‘.’、数字进行分割,并返回所有单词。
['I', 'am', 'in', 'house', 'with', 'lots', 'of', 'pepole', 'yes', 'no','china', 'USA']