簡體   English   中英

Java正則表達式檢測句尾但忽略(num)(句點)例如15

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM