我想在多行文字中搜索每行是否sentence="
后跟一些文字,并以" />'
结尾。如果是,请查看sentence="
和" />'
之间的文字是否有"
,如果是,请将其替换为'
。例如,一条这样的行是:
<number="4" word="start" sentence="I said, "start!"" />
我想将其更改为
<number="4" word="start" sentence="I said, 'start!'" />
请注意,此类案例可能会在文本的每一行中多次发生。
我想知道如何在Python中使用正则表达式来实现这一目标?谢谢!
答案 0 :(得分:3)
您可以向re.sub
提供一个callable,告诉它用以下内容替换匹配对象的内容:
s = """<number="4" word="start" sentence="I said, "start!"" />"""
re.sub(r'(?<=sentence=")(.*)(?=" />)', lambda m: m.group().replace('"',"'"), s)
Out[179]: '<number="4" word="start" sentence="I said, \'start!\'" />'