python 正则表达式 re.sub & re.subn

  • Post category:Python

Python正则表达式re.sub&re.subn详解

正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。在Python中,re模块提供了一系列函数来操作正表达式。本攻略将详细讲解Python中re模块的re.sub()和re.subn()方法,包括方法的用法、参数和示例应用。

re.sub()方法

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

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

其中,pattern表示正则表达式,repl表示替换的字符串,string表示要搜索的字符串,count表示替换的最大次数,flags表示正则表达式的匹配模式。

下面是一个例子,演示如何使用re.sub()方法替换字符串中的数字:

import re

text = 'The price is $1099.'
pattern = r'\d+'
replacement = 'XXXX'
result = re.sub(pattern, replacement, text)
print('Result:', result)

在上面的代码中,我们使用正则表达式\d+匹配字符串中的数字,并将其替换为XXXXsub()函数替换后的字符串。运行后,输出结果为Result: The price is $XXXX.

re.subn()方法

re.subn()方法与re.sub()方法类似,也是用于在字符串中搜索正则表达式的所有匹配项,并将其替换为指的字符串。不同的是,re.subn()方法返回一个元组,包含替换后的字符串和替换的次数。语法如下:

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

下面是一个例子,演示如何使用re.subn()方法替换字符串中的数字:

import re

text = 'The is $1099.'
pattern = r'\d+'
replacement = 'XXXX'
result, count = re.subn(pattern, replacement, text)
print('Result:', result)
print('Count:', count)

在上面的代码中,我们使用正则表达式\d+匹配字符串中的数字,并将其替换为XXXXsubn()函数返回替换后的字符串和替换的次数。运行后,输出结果为Result: The price is $XXXX.Count: 1

示例1:替换HTML标签

下面是一个例子,示如何使用re.sub()方法替换HTML标签:

import re

text = '<h1>Welcome to website</h1>'
pattern = r'<.*?>'
replacement = ''
result = re.sub(pattern, replacement, text)
print('Result:', result)

在上面的代码中,我们使用正则表达式<.*?>匹配HTML标签,并将其替换为空字符串。运行后,输出为Result: Welcome to website

示例2:替换字符串中的空格

下面是另一个例子,演示如使用re.subn方法替换字符串中的空格:

import re

text = 'The quick brown fox jumps over the lazy dog.'
pattern = r'\s+'
replacement = '-'
result, count = re.subn(pattern, replacement, text)
print('Result:', result)
print('Count:', count)

在上面的代码中,我们使用正则表达式\s+匹配字符串中的空格,并其替换为-subn()函数返回替换后的字符串和替换的次数。运行后,输出为Result: The-quick-brown-fox-jumps-over-the-lazy-dog.Count: 7

以上是Python中re模块的re.sub()和re.subn()方法的详细讲解包括方法的用法、参数和示例应用。这些方法在Python中的正则表达式操作中非常用,望读者可以这些示例更好地理解这些方法的应用。