是否可以使用正则表达式解决此问题?

时间:2010-10-02 10:32:44

标签: python regex

我试图将长文本分成小部分,以便每个部分至少有N个字符,并以一些停止标点符号(?。!)结束。如果部分大于N个字符,我们会在出现下一个标点符号时进行调整。

例如:

让我们说N = 10

Do you want lime? Yes. I love when I drink tequila. 

这句话应分为两部分。

[1] Do you want lime?
[2] Yes. I love when I drink tequila.

2 个答案:

答案 0 :(得分:2)

也许是这样的? (感谢KennyTM的最终优化。)

.{10}[^.?!]*[.?!]+

答案 1 :(得分:2)

.{10,}?[.!?]+\s*

应该有效。它还会将重复的标点符号保留在一起,因此会将Do you want lime??? Yes. I love when I drink tequila.拆分为Do you want lime???Yes. I love when I drink tequila.

但是,它不会将引用的语音考虑在内,并会将Peter said "Hi! How about dinner tonight?" and left.分为Peter said "Hi!How about dinner tonight?" and left.

这可能是一个需要考虑的问题吗?