我有匹配某些数据的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)
我在其他几个方面尝试它,但它不是替换任何或替换不仅匹配但整个模式
答案 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)