c语言编程笔录

首页 >   > 笔记大全

笔记大全

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"]