Python:用正则expression式replace
我需要replacestring的一部分。 我正在浏览Python文档,发现re.sub。
import re s = '<textarea id="Foo"></textarea>' output = re.sub(r'<textarea.*>(.*)</textarea>', 'Bar', s) print output >>>'Bar'  我期待这打印'<textarea id="Foo">Bar</textarea>'而不是“酒吧”。 
有谁能告诉我我做错了什么?
 您可以捕获要保留的部分,而不是捕获要replace的部分,然后使用引用\1引用它们以将其包含在replace的string中。 
试试这个:
 output = re.sub(r'(<textarea.*>).*(</textarea>)', r'\1Bar\2', s) 
另外,假设这是HTML,你应该考虑使用一个HTMLparsing器来完成这个任务,例如Beautiful Soup 。
或者你可以使用searchfunction:
 match=re.search(r'(<textarea.*>).*(</textarea>)', s) output = match.group(1)+'bar'+match.group(2) print output >>>'<textarea id="Foo">bar</textarea>'