我最近發現我沒有使用正則表達式正確地在我的代碼中。以製表符分隔字符串str
爲例,我一直在使用str.split("\t")
。現在我意識到這是錯誤的,要正確匹配標籤,我應該使用str.split("\\t")
。瞭解Java中的正則表達式:split(「 t」)vs split(「\ t」) - 它們什麼時候工作,什麼時候應該使用
但是我碰巧偶然發現了這個事實,因爲我正在尋找其他東西的正則表達式。你看,故障代碼split("\t")
已經在我的情況一直相當精細,現在我很困惑,如果是申報正則表達式匹配的製表符的錯誤的方式,爲什麼它的工作。因此,爲了真正理解正則表達式是如何在Java中處理的,而不是僅僅將代碼複製到Eclipse中,並且不真正在乎它爲什麼會起作用......
以類似的方式,我遇到了一塊文本不僅以製表符分隔,而且還以逗號分隔。更明確提出,製表符分隔的名單,我有時解析包括「複合型」的項目看起來像:item1,item2,item3
,我想向他們解析爲單獨的元件,爲了簡單起見。在這種情況下,正確的正則表達式應該是:line.split("[\\t,]")
,還是我在這裏弄錯了?
由於提前,
所以你的名單既標籤,並用逗號隔開,但有時標籤是不分離? – Gumbo 2010-09-21 16:54:56
好吧......沒有。它是一個以製表符分隔的標識符列表,但是在元素之間有一些由逗號分隔的id.s /的對/三元組。請參閱:http://www.pathwaycommons.org/pc/webservice.do?version=2.0&cmd=get_record_by_cpath_id&q=767212&output=gsea&output_id_type=UNIPROT – posdef 2010-09-22 08:30:51
此問題與答案也相關且有幫助。檢查他們[https://stackoverflow.com/questions/1635764/string-parsing-in-java-with-delimeter-tab-t-using-split](here) – Bouramas 2017-12-05 12:56:41