Python匹配和替换,我做错了什么?

时间:2016-01-28 11:02:04

标签: python regex

我有匹配某些数据的reg exp(是here),现在我尝试用单: characetr替换所有匹配的数据

test_str = u"THERE IS MY DATA"
p = re.compile(ur'[a-z]+([\n].*?<\/div>[\n ]+<div class="large-3 small-3 columns">[\n ]+)[a-z]+', re.M|re.I|re.SE) 
print re.sub(p, r':/1',test_str) 

我在其他几个方面尝试它,但它不是替换任何或替换不仅匹配但整个模式

1 个答案:

答案 0 :(得分:0)

1)它的反斜杠问题 使用:print re.sub(p, r':\1',test_str)而非print re.sub(p, r':/1',test_str) 2)您正在使用:\1替换所有模式,这意味着将所有文本替换为:,后跟正则表达式中的第一个组。
要仅替换文本中的第一个组,您应该在第一个组和之后添加两个组。 我希望这能解决问题:

test_str = u"THERE IS MY DATA" 
p = re.compile(ur'([a-z]+)([\n].*?<\/div>[\n ]+<div class="large-3 small-3 columns">[\n ]+)([a-z]+)', re.M|re.I|re.SE) 
print re.sub(p, r'\1:\2\3',test_str)