比如
string str="'aaa' 'bbb' 'ccc'";
Regex re = new Regex("(?<=').*?(?=')")
提取出来集合大小是5:aaa,空格,bbb,空格,ccc,应该是匹配的时候把所有引号之间的都算上了
想只提取出来aaa,bbb,ccc,正则表达式怎么写啊正则表达式,提取引号间内容

解决方案 »

  1.   


    string str = "'aaa' 'bbb' 'ccc'";
    Regex re = new Regex("(?<=')[^']*?(?=')");
    MatchCollection mc = re.Matches(str);集合大小还是5
      

  2.   

    修改
    Regex re = new Regex(@"(?<=')[^'\s]+?(?=')");
      

  3.   

    string str = "'aaa' 'bbb' 'ccc'";
    Regex re = new Regex("(')([^'])+\1");
    MatchCollection mc = re.Matches(str);
    string[] result=mc.Cast<Match>().Select(m=>m.Groups[2].Value).ToArray();
      

  4.   

    这个可以,多谢啊!

    这个是有问题的,你试试这种情况:
    string str="'aaa   ' 'bbb' 'ccc   '";
      

  5.   

    update:Regex re = new Regex(@"(')([^']+)\1");