-1
A
回答
1
它查找標點符號,如停止,逗號和冒號,可選擇用空格前面和後面總是跟着至少一個空白字符。最常見的情況是". "
。然後,通過刪除匹配的標點符號並將返回的任何內容作爲列表返回,將字符串x
拆分爲小塊。
>>> x = "First sentence. Second sentence? Third sentence."
>>> re.split(r' *[.,:-\@/_&?!;][\s ]+', x)
['First sentence', 'Second sentence', 'Third sentence.']
正則表達式是不必要的複雜,並沒有做很好的工作。
此位::-\@
有一個冗餘的引用反斜槓,意思是ascii 58和64之間的字符,換句話說: ; <=> ? @
,但最好明確列出7個字符,因爲大多數人不會知道字符是什麼字符在那個範圍內。這包括我:我必須查找它。而且顯然還包括代碼的作者,因爲他在最後再次指定了;
。
該位[\s ]+
意味着一個或多個空格或空白字符但空間是一個空格字符,這樣可以更簡單地表示爲\s+
。
請注意在返回列表的第3個元素中保留的句號。這是因爲當句號結束時,句號後面沒有空格,並且正則表達式堅持它是肯定的。保持完全停頓是可以的,但前提是對所有句子一致地進行,而不僅僅是對於以換行符結束的那些句子。
扔掉那段代碼並從頭開始。或者使用nltk
,它具有將文本分割成句子的電源工具,並且可能會做出更加令人尊敬的工作。
>>> import nltk
>>> sent_tokenizer=nltk.punkt.PunktSentenceTokenizer()
>>> sent_tokenizer.sentences_from_text(x)
['First sentence.', 'Second sentence?', 'Third sentence.']
相關問題
- 1. 正則表達式句子拆分
- 2. 基於正則表達式的拆分模式
- 3. 正則表達式拆分句子分成多個組
- 4. 正則表達式拆分
- 5. 拆分正則表達式
- 6. 正則表達式拆分
- 7. 正則表達式拆分(...,...)
- 8. 拆分正則表達式
- 9. 基於正則表達式的文本文件拆分
- 10. 正則表達式將文本文檔拆分爲句子
- 11. 基於正則表達式拆分文件內容:python
- 12. 正則表達式 - 句子
- 13. Javascript正則表達式 - 正則表達式拆分字符串
- 14. 基於正則表達式
- 15. 基於正則表達式
- 16. 拆分正則表達式的結果
- 17. VB.NET中的正則表達式拆分
- 18. Java的正則表達式拆分
- 19. java的正則表達式拆分commna
- 20. 的Javascript正則表達式 - 如何基於正則表達式
- 21. 拆分使用正則表達式
- 22. Java拆分正則表達式
- 23. 拆分與正則表達式
- 24. 正則表達式來拆分searchphrase
- 25. 正則表達式拆分xpath
- 26. 拆分使用正則表達式-javascript
- 27. 正則表達式或拆分('')?
- 28. Java拆分正則表達式
- 29. 拆分URL與正則表達式
- 30. 正則表達式字符串拆分
哪部分你不明白?分裂,或正則表達式模式? –