我想在文本文件中匹配不同格式的列表。基本上我希望能够匹配
一,二,三,四
或
“一”; “二”; “三”; “四”
我想提取分隔符和引用。 (“”和“,”表示第一个例子,“\”“和”;“表示第二个例子)
我这样做了:
String regexp = "(?<delim>[^\\w\\n\"']?)(?<space> ?)(?<quote>[\"']?).*?\\k<quote>\\k<delim>";
Pattern pattern = Pattern.compile(regexp);
matcher = pattern.matcher(line);
if (matcher.matches()) {
while (matcher.find()) {
String delim = matcher.group("delim");
String quote = matcher.group("quote");
// Do stuff
}
}
当我执行matcher.group()
时,我只获得一个包含测试完整字符串的组。 matcher.group("delim")
和引用始终为空。我意识到这是一个问题,我的delim组是可选的但是我也尝试了下面的正则表达式,虽然在线正则表达式测试器上的匹配从来没有匹配我的代码:
String regexp = "(?<delim>[^\\w\\n\"'])(?<space> ?)(?<quote>[\"']?).*?\\k<quote>\\k<delim>";
我的正则表达式中我做错了什么?