要捕获并替换两个字符串之间找到的字符串,可以使用正则表达式结合字符串的replace()方法来实现。下面是一个示例代码:
import re
def replace_between_strings(original_str, start_str, end_str, replace_str):
pattern = re.escape(start_str) + '(.*?)' + re.escape(end_str)
return re.sub(pattern, replace_str, original_str)
# 示例用法
original_str = "Hello [name], how are you [name]?"
start_str = "[name]"
end_str = "[name]"
replace_str = "John"
new_str = replace_between_strings(original_str, start_str, end_str, replace_str)
print(new_str)
这个示例代码中,我们定义了一个函数replace_between_strings
,它接受四个参数:原始字符串original_str
、起始字符串start_str
、结束字符串end_str
和要替换的字符串replace_str
。
函数内部使用re.escape()
函数来对起始字符串和结束字符串进行转义,以防止其中包含正则表达式的特殊字符。然后,使用正则表达式的re.sub()
方法,传入捕获组模式(.*?)
和要替换的字符串replace_str
,对原始字符串进行替换。
最后,我们给出了一个示例用法,将原始字符串中的所有起始字符串和结束字符串之间的文本替换为指定的字符串,并打印出替换后的新字符串。