我试图在小部分中划分长文本,以便每个部分至少有N个字符,并以一些停止标点符号(?。!)结尾。如果该部分比我们在出现下一个标点符号时刻出的N个字符大。是否可以使用正则表达式解决此问题?
例如:
比方说N = 10
这句话应该分为两个部分分开。
[1] Do you want lime?
[2] Yes. I love when I drink tequila.
我试图在小部分中划分长文本,以便每个部分至少有N个字符,并以一些停止标点符号(?。!)结尾。如果该部分比我们在出现下一个标点符号时刻出的N个字符大。是否可以使用正则表达式解决此问题?
例如:
比方说N = 10
这句话应该分为两个部分分开。
[1] Do you want lime?
[2] Yes. I love when I drink tequila.
也许这样吗? (感谢KennyTM进行最后的优化。)
.{10}[^.?!]*[.?!]+
.{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.
莫非是需要考虑的问题?
你使用的是java,javascript,php吗?无论如何,它可以完成(努力).... :-) – 2010-10-02 10:36:44
我想在Python中做到这一点。 – Ilija 2010-10-02 11:05:48