作者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