1
我需要用一個名爲group的正則表達式替換{word}:(?< word> \ w ++)以後的匹配表達式,即:/ {name}/{age} ...這段代碼不起作用!這個替換代碼有什麼問題?
String p = "/{name}/{id}";
p = p.replaceAll("\\{(\\w+)\\}", "(?<$1>\\\\\\\\w+)");
Pattern URL_PATTERN = Pattern.compile(p);
CharSequence cs = "/lucas/3";
Matcher m = URL_PATTERN.matcher(cs);
if(m.matches()){
for(int i=1;i<m.groupCount();++i){
System.out.println(m.group("name"));
}
}
結果:沒有什麼:(
但是,當我拿到更換的結果:/(?\ w +)/(?\ w +),並把在Pattern.compile()這個工程:
String p = "/{name}/{id}";
p = p.replaceAll("\\{(\\w+)\\}", "(?<$1>\\\\\\\\w+)");
Pattern URL_PATTERN = Pattern.compile("/(?<name>\\w+)/(?<id>\\w+)");
System.out.println(p);
CharSequence cs = "/lucas/3";
Matcher m = URL_PATTERN.matcher(cs);
if(m.matches()){
for(int i=1;i<m.groupCount();++i){
System.out.println(m.group("name"));
}
}
結果: 「盧卡斯」
什麼是錯
它的工作原理! :) 謝謝! – 2012-08-04 14:09:17
很高興我能幫忙:) – Pshemo 2012-08-04 14:11:36