(?<!exp)  匹配前面不是exp的位置   这个貌似浏览器都不支持了,那就不好写了

解决方案 »

  1.   

    my $x=<STDIN>;
    chomp $x;
    my @B;
    while($x=~/\"/g){
    push @B,pos($x); 
    }
    $a=$B[0];
    $b=$B[scalar(@B)-1];
    $head=substr($x,0,$a-1);$middle=substr($x,$a,$b-$a-1);
    $tail=substr($x,$b);print "---$head\n";
    print "---$middle\n";
    print "---$tail\n";运行结果如下:
    ---4,
    ---小金"",子
    ---, abc开个玩笑,未必是你需要的.
      

  2.   

    如果你说从第一个"开始匹配到最后一个",这是一个规律
    而所谓单个",真心看不懂算什么规律如果把你的字符串改一下:
    4,"小金"",子", abc,4,"小金"",子", abc
    那么到底匹配什么,是匹配2次
    小金"",子
    还是
    小金"",子", abc,4,"小金"",子
      

  3.   

    大哥, 我的规则就是“单个双引号开头,单个双引号结尾”,两个双引号在一起就不算了嘛4,"小金"",子", abc,4,"小金"",子", abc
    =>
    4
    "小金"",子"
    abc
    4
    "小金"",子"
    abc就是这样啊, 如果你还不明白, 你去看一下CSV吧:
    http://baike.baidu.com/link?url=SD0ountn9T4jGCT2l9JdCxJN_cdLFbimrCRRqh_n4QMfxUVK9fBw5ncyDmkWGEGo4xLwO-QdBnKRLSxOePkuE_F4-W4af0_ebPtXCt3NMbq
      

  4.   

    正则表达式测试工具, 如果有兴趣可以用这个先测一下是否正确:
    http://deerchao.net/tools/regex_tester/regextester.zip
      

  5.   

    ^,后面为什么要加一空格?
    abc前面不是有个空格吗,如果要保留就把正则里面的去掉就行了
      

  6.   

    ^,后面为什么要加一空格?
    abc前面不是有个空格吗,如果要保留就把正则里面的去掉就行了去掉了还是有点问题, 麻烦再改改, 谢谢
    正则:("{2,},|[^,])*
    字符串:4,"小金"",子", abc,"ih """,""","""
    希望得到结果:
    4
    "小金"",子"
     abc
    "ih """
    ""","""

    运行效果: