这是我的问题。我有这样的代码,代码用于解析伦敦交通数据库的各个行:
String s = "0,78,Temple,530959,180803,\"District, Circle\",London Underground,1,-0.112643564,51.5104742";
Pattern p = Pattern.compile("^[0-9]+,[0-9]+,(.*?),[0-9]+,[0-9]+,(n/a|\".*?\"|.*?),(.*?),([0-9]),(.*?),(.*)$");
Matcher m = p.matcher(s);
String stationName = m.group(1);
String network = m.group(3);
int zone = Integer.parseInt(m.group(4));
FreeFormatter 和 RegexPlanet 等在线工具建议组 0 匹配整个字符串,而其他组应匹配指定的捕获组。但是,在使用我的 IDE 调试器时,所有组都匹配值 -1,表明根本没有匹配并抛出 IllegalStateException。有人能在我的代码中找到问题吗?谢谢!