【发布时间】:2012-12-28 16:55:14
【问题描述】:
我写了这个正则表达式(在 python 3 中):(?<![\u0410-\u042F])([.!?])(?=(\s)?(\s)?[\u0410-\u042F]|[\u04E8]|["]|[\u201C]|![0-9])
我用python的re.split()
它用西里尔字母分割句子。它们由\n 分隔。所以它应该拆分这个:
Мамлекеттик айыптоочу Биринчи май райондук сотуна берген бул сунушун диний кастыкты ырбатпоо аракети менен негиздеди. Мусулмандарга акаарат келтирип жатат деген кайрылуу каттын негизинде УКМК Тезекбаевге каршы кылмыш ишин козгоп, сотко өткөргөн. Бул ишти бүгүн Биринчи май райондук соту карап бүттү жана өкүм эртең чыгарыларын маалымдады.
分隔句子:
Мамлекеттик айыптоочу Биринчи май райондук сотуна берген бул сунушун диний кастыкты ырбатпоо аракети менен негиздеди.
Мусулмандарга акаарат келтирип жатат деген кайрылуу каттын негизинде УКМК Тезекбаевге каршы кылмыш ишин козгоп, сотко өткөргөн.
Бул ишти бүгүн Биринчи май райондук соту карап бүттү жана өкүм эртең чыгарыларын маалымдады.
但由于某种原因,句号(最后一个字符)换了一行!!除了最后一个。
我看到他们说不要把 "()" 放在 [.!?] 周围,但如果我这样做了,那么标点符号就会被删除。
【问题讨论】:
-
大概你也在单独打印结果列表中的每个元素,或者你正在使用
'\n'.join(),对吗?
标签: python regex python-3.x