Python实现re 文本匹配利器
更新时间:2023-10-22什么是re模块
re模块是Python标准库中的正则表达式操作库,提供了一系列对文本进行匹配的方法。正则表达式是一种通用的文本匹配工具,可以用于字符串的搜索、替换等操作。re模块提供的函数可以用于字符串的匹配、替换、拆分等操作。
import re
str1 = "Hello World!"
x = re.search("^H.*!", str1)
if (x):
print("匹配成功")
else:
print("匹配失败")
re模块中的常用方法
re模块中提供了很多函数,其中常用的有re.search(), re.match(), re.sub()和re.findall()。
re.search(): 从字符串的开头开始搜索,只返回第一个匹配的结果。
import re
str1 = "Hello World!"
x = re.search("^H.*!", str1)
print(x.span()) # 输出(0, 12)
print(x.group()) # 输出"Hello World!"
re.match(): 只从字符串的开头开始搜索,如果字符串开头不匹配,就会返回None。
import re
str1 = "Hello World!"
x = re.match("^H.*!", str1)
if (x):
print("匹配成功")
else:
print("匹配失败")
re.sub(): 将所有匹配到的结果替换成指定的字符串。
import re
str1 = "Hello World!"
x = re.sub("\s", "_", str1)
print(x) # 输出"Hello_World!"
re.findall(): 返回所有匹配的结果。
import re
str1 = "cat cat cat dog dog dog"
x = re.findall("cat", str1)
print(x) # 输出["cat", "cat", "cat"]
正则表达式语法
正则表达式是一种用来描述字符串格式的语言,它由一些特殊字符和普通字符组成,可以用来匹配任何符合规则的字符串。常用的正则表达式语法有:
- . :表示任意字符。
- * :表示匹配零个或多个前面的字符。
- + :表示匹配一个或多个前面的字符。
- ^ :表示从字符串的开头开始匹配。
- $ :表示从字符串的末尾开始匹配。
- \ :表示转义字符。
- [] :表示字符集合。
- | :表示或。
- () :表示分组。
import re
str1 = "cat cat cat dog dog dog"
x = re.findall("cat*", str1)
print(x) # 输出["cat", "cat", "cat", "cat"]
实践应用场景
正则表达式在实践中有非常广泛的应用场景,例如:
- 数据清洗:对包含不合法字符的数据进行过滤和处理。
- 文本分析:提取文本中的关键信息,如电话号码、邮箱等。
- 爬虫:用正则表达式来匹配特定的网页信息,例如图片链接、标题等。
- 日志分析:从日志文件中提取有用的信息,如时间、IP地址、用户ID等。
import re
str1 = "john.doe@gmail.com"
pattern = r'[a-z]+@[a-z]+\.[a-z]+'
x = re.findall(pattern, str1)
print(x) # 输出["john.doe@gmail.com"]