python正则表达式re模块详解

  • Post category:Python

Python正则表达式re模块详解

在Python中,re模块是正则表达式的标准库,提供了一系列函数和方法,用于处理正则表达式。本攻略将详细讲解Python中re模块的用法和常用函数。

re模块的基本用法

在Python中,使用re模块进行正则表达式的处理。下面是一个例子,演示如使用re模块进行匹配:

import re

text = 'Hello, world!'
pattern = r'world'
result = re.search(pattern, text)
if result:
    print('Match found:', result.group())
else:
    print('Match not found')

在上面的代码中,我们使用re模块的search()函数进行匹配。search()函数返回第一个匹配的结果。运行代码后,结果为Match found: world

re模块的常用函数

re模块提供了一系列函数和方法,用处理正则表达式。下面是一些常用的函数和方法:

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

尝试从字符串的起始位置匹配一个模式,如果匹配成功,返回一个匹配对象;如果匹配失败,返回None。

import re

text = 'Hello, world!'
pattern = r'Hello'
result = re.match(pattern, text)
if result:
    print('Match found:', result.group())
else:
    print('Match not found')

在上面的代码中,我们使用re模块的match()函数进行匹配。match()函数从字符串的起始位置开始匹配,如果匹配成功,返回一个匹配对象。运行代码后,结果为Match found: Hello

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

扫描整个字符串,返回第一个成功匹配的结果,如果匹配失败,返回None。

import re

text = 'Hello, world!'
pattern = r'world'
result = re.search(pattern, text)
if result:
    print('Match found:', result.group())
else:
    print('Match not found')

在上面的代码中,我们使用re模块的search()函数进行匹配。search()函数扫描整个字符串,返回第一个成功匹配的结果。运行代码后,结果为Match found: world

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

返回一个列表,其中包含字符串中所有与模式匹配的子串。

import re

text = 'Hello, world!'
pattern = r'l'
result = re.findall(pattern, text)
print(result)

在上面的代码中,我们使用re模块的findall()函数进行匹配。findall()函数返回一个列表,其中包含字符串中所有与模式匹配的子串。运行代码后,结果为['l', 'l', 'l']

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

使用repl替换string中所有与pattern匹配的子串,并返回替换后的字符串。如果没有匹配成功,则返回原始字符串。

import re

text = 'Hello, world!'
pattern = r'world'
result = re.sub(pattern, 'Python', text)
print(result)

在上面的代码中,我们使用re模块的sub()函数进行替换。sub()函数使用Python替换字符串中所有与world匹配的子串,并返回替换后的字符串。运行代码后,结果为Hello, Python!

示例说明

示例1:匹配邮箱地址

下面是一个例子,演示如何使用re模块匹配邮箱地址:

import re

email = 'example@example.com'
pattern = r'\w+@\w+\.\w+'
result = re.match(pattern, email)
if result:
    print('Match found:', result.group())
else:
    print('Match not found')

在上面的代码中,我们使用re模块的match()函数进行匹配。match()函数从字符串的起始位置开始匹配,如果匹配成功,返回一个匹配对象。运行代码后,结果为Match found: example@example.com

示例2:替换HTML标签

下面是一个例子,演示如何使用re模块替换HTML标签:

import re

html = '<p>Hello, world!</p>'
pattern = r'<.*?>'
result = re.sub(pattern, '', html)
print(result)

在上面的代码中,我们使用re模块的sub()函数进行替换。sub()函数使用空字符串替换字符串中所有与<.*?>匹配的子串,并返回替换后的字符串。运行代码后,结果为Hello, world!

以上是Python中re模块的用法和常用函数。re模块提供了一系列函数和方法,用于处理正则表达式,可以帮助我们更加方便地进行正则表达式的处理。