我想分析一个xml文件,程序的一部分将数据拆分为句子,但是行尾字符消失了……我需要它们在句子的开头和结尾添加带有xml标签的注释。

现在我有:

import re

line_end_chars = "!", "?", ".",">"


regexPattern = '|'.join(map(re.escape, line_end_chars))

line_list = re.split(regexPattern, texte)


问题

如果我使用texte运行此代码

" Je pense que cela est compliqué de coder. Où puis-je apprendre?"


那会给我的:

["Je pense que cela est compliqué de coder",
"Où puis-je apprendre"]


而不是我正在寻找的是:

["Je pense que cela est compliqué de coder.",
"Où puis-je apprendre?"]


之后,我可以做一个.replace代码来添加我的xml标签。

最佳答案

一种可能的解决方案是使用re.sub而不是re.split然后使用str.splitlines()

import re

line_end_chars = "!", "?", ".",">"
s = "Je pense que cela est compliqué de coder. Où puis-je apprendre?"

print( re.sub('(' + '|'.join(re.escape(ch) for ch in line_end_chars) + ')\s*', r'\1\n', s).splitlines() )


印刷品:

['Je pense que cela est compliqué de coder.', 'Où puis-je apprendre?']

10-07 15:39