很久没有编写爬虫程序,不过前不久又再次上手。对于文本数据获取指定信息,或者进行清洗,正则表达式都是一个强力的工具。它的使用场景也十分多样。借此回顾总结一下,python中的re模块的主要功能与示例。
compile
re.compile()可以对传入的字符串进行编译,来返回一个目标的匹配模式,从而提高正则的效率。主要参数:
pattern : 需要编译的字符串
flags : 修改匹配方式,包括以下可选:re.S : 使.匹配包括换行在内的所有字符
re.I : 使匹配对大小写不敏感
re.U : 根据Unicode规则解析字符,主要用于对中文匹配
例子:
import re
text = '正则表达式(英语:Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。'
# 获取文本中被中文括号包含的内容
pattern = re.compile('((.*))',flags=re.U)
pattern.findall(text)
匹配内容以列表的形式返回
看一下flags的作用对比:
import re
text = '正则表达式(英语:Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。'
#小写英文字母至少出现一次的内容
pattern1 = re.compile('[a-z]+')
#无视大小写
pattern2 = re.compile('[a-z]+',flags=re.I)
print(pattern1.findall(text))
print(pattern2.findall(text))