Java正则表达式匹配组不匹配

时间:2016-11-22 16:07:21

标签: java regex

我想在文本文件中匹配不同格式的列表。基本上我希望能够匹配

  

一,二,三,四

  

“一”; “二”; “三”; “四”

我想提取分隔符和引用。 (“”和“,”表示第一个例子,“\”“和”;“表示第二个例子)

我这样做了:

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>";

我的正则表达式中我做错了什么?

0 个答案:

没有答案