正则表达式匹配两个不同分隔符之间的字符串,如“<”和“>”

时间:2015-10-28 14:27:55

标签: python regex separator

我想将我的文本拆分成上下文并捕获我有以下规则的地方:

<abc> e f <ghi>
<abc> e f
e f <ghi>

在这里,我想创建仅影响标记<>内部字符串的规则 例子是输出:

<aabbcc> e f <gghhii>
<axyzbxyzcxyz> e f 
e f <g_h_i_>

使用line.split('')[i]不会削减它,因为我有两个不同的分隔符

1 个答案:

答案 0 :(得分:1)

您可以使用re.sub替换<...>中的部分,使用替换回调函数:

def replace_function(match):
    return '<' + ''.join(c + c for c in match.group(1)) + '>'

text = re.sub(r"<(.*?)>", replace_function, text)

这将复制每个标签中的字符,但您可以以任何方式扩展该功能,以执行更复杂的替换。