我有一些格式不正确的文本需要过滤。因此,有很多情况下,文本中的引用从一行开始,然后切断并在第二行结束。在这种情况下,我的首选是完全删除部分引号,但是,我想保留常规的全引号。我知道这可以用计数器迭代地完成,但我真的更喜欢用正则表达式来处理它。Python正则表达式仅匹配部分圆括号
,举个例子:
"This is a quote" This is an end "partial- quote" Here is more text. This is an end "partial- quote w/o more text" This is an "embedded" quote
Here是我目前的尝试(\"[^\"\n]+?|^[^\"\n]+?\")(\n|$)
注意一个例子,它在两种情况下会失败:
- 3号线 - 部分报价收益的剩余部分句子(很少发生,所以如果我们不能解决它不是世界末日)。
- 第6行 - 一个嵌入式报价。这是一个主要问题,也是我在问题中采取的主要原因。它将嵌入式报价中的最后一个报价截至行末。
我想我可以设置一个if语句并运行每一行,检查它是否少于两个引号,然后继续解析部分引号,但我认为SO的头脑会有很多清洁解决方案
注意所需的输出是:
"This is a quote" This is an end Here is more text. This is an end This is an "embedded" quote
(我处理空格后面上)
也许你可以查看我提出的正则表达式吗? – Jerry