我在属性文件中有以下条目:
some.key = \n
[1:Some value] \n
[14:Some other value] \n
[834:Yet another value] \n
我正在尝试使用正则表达式对其进行解析,但我似乎无法正确分组。我正在尝试为每个条目打印一个键/值。示例:Key="834", Value="Yet another value"
private static final String REGEX_PATTERN = "[(\\d+)\\:(\\w+(\\s)*)]+";
private void foo(String propValue){
final Pattern p = Pattern.compile(REGEX_PATTERN);
final Matcher m = p.matcher(propValue);
while (m.find()) {
final String key = m.group(0).trim();
final String value = m.group(1).trim();
System.out.println(String.format("Key[%s] Value[%s]", key, value));
}
}
我得到的错误是:
Exception: java.lang.IndexOutOfBoundsException: No group 1
我以为我在正则表达式中正确分组,但我想不是。任何帮助,将不胜感激!
谢谢
更新:转义括号有效。改成下面的样式谢谢反馈!
private static final String REGEX_PATTERN = "\\[(\\d+)\\:(\\w+(\\w|\\s)*)\\]+";