Skip to main content
 首页 » 编程设计

python之解析替换引号

2025年05月04日24artech

我正在尝试解析一个文本文件以在 python 中对其进行一些统计。为此,我想用标记替换一些标点符号。这种标记的一个例子是所有终止句子的标点符号( .!? 变成 <EndS> )。我设法使用正则表达式做到了这一点。现在我正在尝试解析引号。因此,我认为,我需要一种方法来区分开盘价和收盘价。我正在逐行读取输入文件,我不能保证报价会被平衡。

例如:

 "Death to the traitors!" cried the exasperated burghers. 
 "Go along with you," growled the officer, "you always cry the same thing over again. It is very tiresome." 

应该变成这样:

 [Open] Death to the traitors! [Close] cried the exasperated burghers. 
 [Open] Go along with you, [Close] growled the officer, [Open] you always cry the same thing over again. It is very tiresome. [Close] 

是否可以使用正则表达式来做到这一点?有没有更简单/更好的方法来做到这一点?

请您参考如下方法:

您可以使用sub 方法(模块重新):

import re 
 
def replace_dbquote(render): 
    return '[OPEN]' + render.group(0).replace('"', '') + '[CLOSE]' 
 
string = '"Death to the traitors!" cried the exasperated burghers. "Go along with you", growled the officer.' 
parser = re.sub('"[^"]*"', replace_dbquote, string) 
 
print(parser) 

https://docs.python.org/3.5/library/re.html#re.sub