作者blueshika (璽佧)
看板RegExp
標題[問題] 字串多個括號分割
時間Wed May 9 17:18:52 2012
輸入的字串是這個樣子,目的是要分別取出括號如(aaa,aaa,123)
test((aaa,aaa,123)(bbb,bbbb)(ccc,cc,7891)...)
我自己寫了如下的規則
(\([a-z]+\,[a-z]+\,*\d*\))
我在這個網頁測試
http://osteele.com/tools/rework/
結果如下
results[0] = "test("
results[1] = "(aaa,aaa,111)"
results[2] = empty string
results[3] = "(bbb,bbbb)"
results[4] = empty string
results[5] = "(ccc,cc)"
results[6] = ")"
可是我把規則寫在java裡面執行
private static String regex = "(\\([a-z]+\\,[a-z]+\\,*\\d*\\))";
Pattern p = Pattern.compile(regex);
String[] array = p.split(input_string);
結果卻是
第0個:test(
第1個:
第2個:
第3個:)
請問是哪裡出錯??
還有我一開始的規則這樣寫OK嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.26.80
1F:推 LPH66:你誤解了 split 的用途了 他是指以指定 pattern 做分隔去切 05/09 17:57
2F:→ LPH66:所以你得到的是原網頁的 [0] [2] [4] [6] 這四段 05/09 17:57
3F:→ LPH66:[1] [3] [5] 這些符合 pattern 的被當做分隔線了 05/09 17:57
4F:→ LPH66:你應該要用 p.matcher(input_string); 取出 Matcher 05/09 17:59
5F:→ LPH66:再由這個 Matcher 抓出每一段字串出來 05/09 17:59
6F:→ blueshika:我懂了@@ 感謝LPH66 05/09 18:43