2012-12-27 50 views
0

我的正則表達式是(?<![\u0410-\u042F])[.!?](?=(\s)?(\s)?[\u0410-\u042F]|[\u04E8]|["]|[\u201C]|![0-9])正則表達式失去了最後一個字符

我想分割成段的句子。

我做re.split(正則表達式),我打印陣列

這是一個樣本輸入我所做的:

Мамлекеттик айыптоочу Биринчи май райондук сотуна берген бул сунушун диний кастыкты ырбатпоо аракети менен негиздеди. Мусулмандарга акаарат келтирип жатат деген кайрылуу каттын негизинде УКМК Тезекбаевге каршы кылмыш ишин козгоп, сотко өткөргөн. Бул ишти бүгүн Биринчи май райондук соту карап бүттү жана өкүм эртең чыгарыларын маалымдады. Тараптар мунаса тапты; Ишти карап жаткан мамлекеттик айыптоочу Кудайберди Чаргынов Кубанычбек Тезекбаевдин диний кастыкты козутууга болгон аракети толугу менен далилденгенин билдирүүдө. Бирок мамлекеттик айыптоочу диний кастыкты ырбатпоо максатында Кыргызстандын Кылмыш кодексинин 65-беренесине ылайык, иш өз маанисин жоготконуна байланыштуу кылмыш ишин Т.У. кыскартып салууну сунуштады.

它打印出精美除了最後一個字符(在這種情況下,一段時間,?或!)被刪除!

我在網上搜索,它表示用lookahead標記包圍標點符號,但它不起作用。

我使用Python 3

回答

0

把捕獲組圍繞字符(縣)要在拆分保存:

(?<![\u0410-\u042F])([.!?])(?=(\s)?(\s)?[\u0410-\u042F]|[\u04E8]|["]|[\u201C]|![0-9]) 

的時間將被添加爲新元素結果列表。從documentation

如果捕獲括號在圖案中使用,然後在圖案中的所有組的文本也返回結果列表的一部分。

如果你不希望這樣,你就必須拆分的空間本身,通過確保空間其他標點符號的匹配週期之前(使用向後看斷言) 。

+0

但是,這段時間放在一個新的行:( –

+0

@ user1925847:你可以合併到前一行,或使用不同的表達式分裂,即空間。 –

相關問題