使用Java和正則表達式,我想從一行文本中提取字符串。 的文本可以是在下面的格式 -使用Java和正則表達式分割複雜的字符串
- KEY1(值1)KEY2(值2)
- KEY1(值1)KEY2
- KEY1 KEY2(值2)
- KEY1 KEY2
- KEY1
當我使用空格分割文本,然後使用下面的模式提取關鍵字時,使用Type#1時,我能夠成功地提取鍵和值小號
Pattern p = Pattern.compile("\\((.*?)\\)",Pattern.DOTALL);
用於計數的次數「(」和與 空間occurence可用於例#2和情況#3匹配它一個複雜的代碼的邏輯,但是,代碼變得太長。當空間出現在值中時也會出現多重複雜化,因爲這樣會使文本分裂成爲問題。
有沒有更好的正則表達式split/holiding我可以用於上面描述的選擇性案例?
你assumin g鍵和值在它們中沒有括號嗎? – merlin2011 2013-05-01 17:32:25
是@ merlin2011,他們的鍵和值本身沒有括號。 – Prasoon 2013-05-01 17:47:33