在字符之间提取字符串

时间:2016-01-07 17:45:34

标签: java regex

我想使用正则表达式从给定字符串中提取2个参数。例如:

  

C:\ Users" C:\ Program files"

     

C:\ mytext.txt mytext2.txt

输出为C:\ Users和C:\ Program files

C:\ mytext.txt和mytext2.txt

如果字符串在"之间" 它可以包含空格,否则它必须没有它们。到目前为止,我设法在"之间提取参数。 " ,但是当一个参数有"时,无法弄清楚如何提取它们。 " 而另一个没有(如上例所示)。

Pattern p = Pattern.compile("\"(.*?)\"");
    Matcher m = p.matcher(string);
    while(m.find()){
        System.out.println(m.group(1));
    }

1 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式进行匹配:

Pattern p = Pattern.compile("\"[^\"]*\"|\\S+");

RegEx Demo