JDK1.7支持正则表达式的命名捕获组JDK1.6不支持
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String pStr = "0x(?<bytes>\\p{XDigit}{1,4})\\s++u\\+(?<char>\\p{XDigit}{4})(?:\\s++)?";
String INPUTTEXT = "0x12A4 u+56C8";
Matcher m = Pattern.compile(pStr).matcher(INPUTTEXT);
if (m.matches()) {
int bs = Integer.valueOf(m.group("bytes"), 16);
int c = Integer.valueOf(m.group("char"), 16);
System.out.printf("[%x] -> [%04x]%n", bs, c);
}
}
}