我对蟒蛇很陌生
我需要用一个正则表达式来匹配所有的情况,并做一个替换。这是一个示例子字符串->期望的结果:
<cross_sell id="123" sell_type="456"> --> <cross_sell>我试图在我的代码中这样做:
myString = re.sub(r'\<[A-Za-z0-9_]+(\s[A-Za-z0-9_="\s]+)', "", myString)它不是在<cross_sell之后替换所有内容,而是替换所有内容,只返回'>'
是否有一种方法可以让re.sub只替换捕获组而不是整个模式?
发布于 2015-09-21 15:11:06
您可以使用替换组:
>>> my_string = '<cross_sell id="123" sell_type="456"> --> <cross_sell>'
>>> re.sub(r'(\<[A-Za-z0-9_]+)(\s[A-Za-z0-9_="\s]+)', r"\1", my_string)
'<cross_sell> --> <cross_sell>'注意,我将第一组(希望保留的组)放在括号中,然后使用替换字符串中的"\1"修饰符(第一组)将其保存在输出中。
https://stackoverflow.com/questions/32698614
复制相似问题