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。