我只想一行包含使用双引号括起来的多个文件名(这是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中。