📜  re 模块文档 - Python (1)

📅  最后修改于: 2023-12-03 15:34:37.905000             🧑  作者: Mango

Python 're' 模块文档

简介

're' 模块是 Python 的标准库之一,提供了正则表达式的支持。正则表达式是一种用来匹配文本的模式,在数据处理和文本分析方面有着广泛的应用。're' 模块中的函数和方法可以用来创建、编译和执行正则表达式。

正则表达式语法

正则表达式由字符和特殊字符(元字符)组成,用来匹配文本中的子串,比如匹配电子邮件地址、电话号码、URL 等等。下面是常用的元字符:

  • '.' 匹配任意单个字符,除了换行符(\n)。
  • '^' 匹配字符串开始位置。
  • '$' 匹配字符串结束位置。
  • '*' 匹配前面的表达式零次或多次。
  • '+' 匹配前面的表达式一次或多次。
  • '?' 匹配前面的表达式零次或一次。
  • '{m}' 匹配前面的表达式 m 次。
  • '{m,n}' 匹配前面的表达式至少 m 次、最多 n 次。
  • '[' 和 ']' 匹配方括号中的任何字符。
  • '|' 指定两个或多个表达式之间的可选项。

在 Python 中,正则表达式使用字符串表示,需要用反斜杠(\)进行转义。Python 中的常用正则表达式函数和方法都是基于 're' 模块提供的。

使用方法
re.match(pattern, string, flags=0)

re.match() 函数用于尝试从字符串的起始位置匹配一个模式。如果匹配成功,就返回一个匹配对象;如果不成功,就返回 None。它的语法如下:

re.match(pattern, string, flags=0)

其中,pattern 是一个字符串形式的正则表达式,string 是需要匹配的字符串,flags 是一个可选的标志位,用来控制正则表达式的匹配方式。下面是示例代码:

import re

pattern = r'hello'
string = 'hello world'

match_obj = re.match(pattern, string, flags=0)

if match_obj:
    print('Match found: %s' % match_obj.group())
else:
    print('Match not found')

输出结果为:

Match found: hello
re.search(pattern, string, flags=0)

re.search() 函数用于在字符串中搜索匹配正则表达式的第一个位置,如果匹配成功,就返回一个匹配对象;如果不成功,就返回 None。它的语法如下:

re.search(pattern, string, flags=0)

其中,pattern、string、flags 的含义和 re.match() 函数一样。下面是示例代码:

import re

pattern = r'world'
string = 'hello world'

match_obj = re.search(pattern, string, flags=0)

if match_obj:
    print('Match found: %s' % match_obj.group())
else:
    print('Match not found')

输出结果为:

Match found: world
re.findall(pattern, string, flags=0)

re.findall() 函数用于在字符串中搜索匹配正则表达式的所有位置,返回一个列表,列表中的每个元素都是一个匹配对象。它的语法如下:

re.findall(pattern, string, flags=0)

其中,pattern、string、flags 的含义和 re.match() 函数一样。下面是示例代码:

import re

pattern = r'\d+'
string = 'The price of this book is $19.99.'

match_list = re.findall(pattern, string, flags=0)

print('All matches: %s' % match_list)

输出结果为:

All matches: ['19', '99']
re.sub(pattern, repl, string, count=0, flags=0)

re.sub() 函数用于搜索字符串中匹配正则表达式的所有子串,并将其替换为指定的字符串。它的语法如下:

re.sub(pattern, repl, string, count=0, flags=0)

其中,pattern、string、flags 的含义和 re.match() 函数一样,repl 是要替换成的字符串,count 是替换次数(默认为 0,表示替换所有匹配),返回替换后的结果字符串。下面是示例代码:

import re

pattern = r'\d+'
string = 'The price of this book is $19.99.'

replaced_string = re.sub(pattern, '', string, flags=0)

print('Replaced string: %s' % replaced_string)

输出结果为:

Replaced string: The price of this book is $.
总结

使用 're' 模块,我们可以很方便地生成、编译和执行正则表达式,从而对文本进行匹配和处理。作为一名 Python 开发人员,了解正则表达式的语法和常用函数,可以帮助我们更高效地从数据中提取有价值的信息。