详解Python re.sub.repl函数:用于替换的字符串或函数

  • Post category:Python

re.sub.repl函数是Python re模块中的一个函数,它的作用是使用替换函数对原字符串特定部分进行替换操作。下面详细讲解它的使用方法及实例说明。

函数语法

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

参数解释:

  • pattern:正则表达式中的模式字符串。
  • repl:被替换的字符串或者一个替换函数。
  • string:匹配的原始字符串。
  • count:可选参数,表示最多替换的次数。
  • flasg:可选参数,正则表达式中的匹配模式。

返回值

该函数返回一个新的字符串,并且进行了替换。

使用方法

最基本的使用方法是在re.sub()函数中传递三个参数:pattern、repl和string。其中,pattern为正则表达式,repl表示替换后的字符串或者是一个替换函数,string则是需要进行替换的原始字符串。

import re

str = 'http://www.google.com'
newstr = re.sub(r'\.', '-', str)
print(newstr)

这段代码将把字符串中的“.”替换成“-”,输出结果为“http://www-google-com”。

如果您使用的是一个替换函数,可以编写一个函数并将其传递给repl参数。该函数的返回值将替换匹配的字符串。

下面是一个具体的示例。代码中定义了一个名为replace_func的函数,并将其作为第二个参数传递给了re.sub()函数。

import re

def replace_func(match):
    return match.group(1).upper() + match.group(2)

str = 'hello, world!'
newstr = re.sub(r'(\w+), (\w+)!', replace_func, str)
print(newstr)

这段代码会搜索字符串中是否有以“英文逗号+空格+单词+英文感叹号”形式出现的字符串。如果找到了这样的字符串,就会执行replace_func函数,将其中的单词的第一个字母转化为大写。

打印输出的结果:Hello, World!

实例说明

实例1

以下代码从user_agent 记录中删除任何末尾连续重复的标头下划线。

import re

user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0__'
user_agent = re.sub('_+$', '', user_agent)
print(user_agent)

输出结果为:Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0。

实例2

以下代码将字符串中的所有半角小括号替换为全角小括号。

import re

str = '这是字符串(全角括号和半角括号都存在)pandas'
newstr = re.sub('\((.*?)\)', '(\g<1>)', str)
print(newstr)

输出结果为:这是字符串(全角括号和半角括号都存在)pandas。