Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中搜索并替换字符串中的某些文本?_Python - Fatal编程技术网

在Python中搜索并替换字符串中的某些文本?

在Python中搜索并替换字符串中的某些文本?,python,Python,我想搜索多行文本,查看每行是否有语句=“后跟一些文本,并以“/>”结尾。如果是,请查看语句=“和”/>之间的文本是否具有“,如果是,请将其替换为”。例如,其中一行是: <number="4" word="start" sentence="I said, "start!"" /> 我想把它改成 <number="4" word="start" sentence="I said, 'start!'" /> 请注意,在文本的每一行中,这种情况可能会发生多次 我想知道

我想搜索多行文本,查看每行是否有
语句=“
后跟一些文本,并以
“/>”结尾
。如果是,请查看
语句=“
”/>之间的文本是否具有
,如果是,请将其替换为
。例如,其中一行是:

<number="4" word="start" sentence="I said, "start!"" />

我想把它改成

<number="4" word="start" sentence="I said, 'start!'" />

请注意,在文本的每一行中,这种情况可能会发生多次


我想知道如何在Python中使用正则表达式来实现这一点?谢谢!

您可以提供一个可调用的to
re.sub
来告诉它用什么替换匹配对象:

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!\'" />'
s=“”
re.sub(r'(?)',lambda m:m.group().replace('“,'”),s)
出[179]:“

我假设您的示例的
语句
属性应该是
实例
?(反之亦然)@roippi:oops。“实例”应为“句子”+1我无法正确获取最后一个
,带有
re.sub(r'station=“(.*)”\s*/>',lambda x:x.group(0)。替换(“,”),数据)
:(