Python:如何使用正则表达式进行搜索+替换

Python:如何使用正则表达式进行搜索+替换,python,regex,Python,Regex,我正在编写一个Python脚本,需要在其中执行一些搜索并替换一些类似XML的字符串 假设我有一个字符串foo,其中包含某种形式的XML。我想改变…中的某个东西,让我们换个别的吧 我该怎么做呢 如果这是一个新手问题,很抱歉,但我对Python还是相当陌生的。我通读了Python正则表达式文档,但这只会让我更加困惑。事实上,我发现正则表达式在其他上下文/语言中也令人困惑,因此这不一定是Python的错:下面是一个简单的示例,说明如何使用lxml.etree,根据上面的注释沿着正确的道路开始: tex

我正在编写一个Python脚本,需要在其中执行一些搜索并替换一些类似XML的字符串

假设我有一个字符串foo,其中包含某种形式的XML。我想改变…中的某个东西,让我们换个别的吧

我该怎么做呢


如果这是一个新手问题,很抱歉,但我对Python还是相当陌生的。我通读了Python正则表达式文档,但这只会让我更加困惑。事实上,我发现正则表达式在其他上下文/语言中也令人困惑,因此这不一定是Python的错:

下面是一个简单的示例,说明如何使用lxml.etree,根据上面的注释沿着正确的道路开始:

text = """<tag><innertag>text</innertag>more text</tag>"""
import lxml.etree
xml = lxml.etree.fromstring(text)
node = xml.find('innertag')
node.text = "new text"
lxml.etree.tostring(xml)
'<tag><innertag>new text</innertag>more text</tag>'

请参阅文档。

XML或类似XML的文件?因为正则表达式和HTML/XML就像油和水——它们不喜欢混合。如果是HTML或XML,最好使用lxml.etree之类的工具来更改上下文。我同意isedev的观点,这可能是一个很好的起点:一旦完成XML解析,就可以对标记内的获取字符串执行正则表达式,以便在需要时进行更深入的处理。如果要替换XML标记内的文本,我建议使用XML解析方法,例如