[英]Java Regex to detect end of sentence BUT ignore (num)(period) e.g. 15
試圖為java中的句子結尾檢測找到一個好的正則表達式。 主要問題是如果有一個數字然后是句號,它會將其檢測為句子結尾(參見演示鏈接)。 但就我而言,我寧願它不承認這是一個句子結尾,即使在某些情況下可能是這樣。 我在文檔中更常見的是部分標題,它們看起來像:
12. the end of the world 13. world didnt end 14. nope it did
就我而言,它將許多簡單的標題列表拆分成我不想要的句子。
此處發布的解決方案的附加問題:
建議的解決方案是: [!?.]+(?=$|\\s)
See demo: http://regex101.com/r/lS5tT3/15
問題是,如果有一個章節標題,例如15。那么它會錯誤地將其視為句子結尾。 在演示中嘗試此文本,您將在第一句話中看到問題:
This is the f!!rst *15.* the best sentence! Is this the second one? The third 32.5 sentence is here... And the fourth one!!
如果有任何正則表達式高手可以幫助從邏輯上補充說,如果句號空格不是句子結尾,而是前面有一個非常有用的數字
此正則表達式適用於一些縮寫並正確識別句子結束標記。 不幸的是,對於 java string.split 我需要這個函數的反函數......
([!?]+(?=$|\s))|((?<![\d])(?<!etc)(?<!Mr)(?<!mr)(?<!i.e)(?<!Dr)(?<!dr)(?<!Mrs)(?<!mrs)(?<![ A-Z])(?<!Ms)(?<!ms)(?<!Phd)(?<!u\.s)(?<!U\.S)(?<!\.)[.]{1}(?=$|\s))|
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.