我只想一行包含使用双引号括起来的多个文件名(这是Windows在文件对话框中选择多个文件时似乎使用的语言”,并将它们作为单独的字符串取回。

即给定

"C:\MusicMatched2\Gold Greatest Hits" "C:\MusicMatched2\The Trials of Van Occupanther"


我想将其解码为两个字符串:

C:\MusicMatched2\Gold Greatest Hits
C:\MusicMatched2\The Trials of Van Occupanther


我通常使用String.split(),但是在这种情况下那就不好了,任何人都可以帮忙

答案,答案中给出的正则表达式的实现方式如下:

        Pattern p = Pattern.compile("\"([^\"]++)\"");
        Matcher matcher =p.matcher("C:\MusicMatched2\Gold Greatest Hits" "C:\MusicMatched2\The Trials of Van Occupanther");
        while(matcher.find()) {
            System.out.println(matcher.group(1));
        }

最佳答案

最快的模式可能是:

"\"([^\"]++)\""


使用find方法,结果在捕获组1中。

09-20 20:50