2013-03-17 53 views
0

之间的捕获组您是否知道这里出了什么问题?我想捕捉“”之间的组。例如,如果字符串是Java - Regex - “”

mv "C:\Users\" "D:\" 

的匹配应该捕获:

C:\Users\ 
    D:\ 
+0

什么输出你现在得到了吗? – Zutty 2013-03-17 11:15:37

+0

什么都没有。它没有捕获任何东西。 – 2013-03-17 11:15:59

+3

它已经在这里回答http://stackoverflow.com/questions/171480/regex-grabbing-values-between-quotation-marks – 2013-03-17 11:16:31

回答

0

这里工作的罚款:

Pattern pathsPattern = Pattern.compile("\"([^\"]+)\""); 
Matcher pathsMatcher = pathsPattern.matcher("mv \"C:\\Users\\\" \"D:\\\""); 
pathsMatcher.find(); 
System.out.println("found " + pathsMatcher.group(1)); // prints: found C:\Users\ 
pathsMatcher.find(); 
System.out.println("found " + pathsMatcher.group(1)); // prints: found D:\ 
1

尝试这个模式:

String data = "mv \"C:\\Users\\\" \"D:\\\""; 

    Pattern pattern = Pattern.compile("\"(.+?)\""); 
    Matcher matcher = pattern.matcher(data); 
    System.out.println("Started"); 
    while (matcher.find()) { 
     System.out.println(matcher.group(1)); 
    }