本帖最后由 liuhui_1987 于 2014-04-15 10:30:50 编辑

解决方案 »

  1.   

    楼主逻辑很混乱啊
    要求输入的双引号(")前必须加上(\)
     csdn\"csdn  不是满足要求的吗?
      

  2.   

    bool isTure=!Regex.IsMatch(str,"(?<!\\)\"");
      

  3.   

    {1} 这个是 format string 的格式,跟正则有鸟关系啊,正则替换字符串有他自己的语法的,你要查一下 MSDN,我记得应该是 $1,$2 之类的
      

  4.   


    看了版主写的表达式,总算懂了楼主的需求了。
    不过版主忘记转义了,正确的应该是这个:
    bool isTure=!Regex.IsMatch(str,"(?<!\\\\)\\\"");
    然后楼主的需求,应该是想让下面第一个case返回true,第二个case返回false string pattern = "(?<!\\\\)\\\"";
    bool isTure1 = !Regex.IsMatch("csdn\\\"csdn", pattern);
    bool isTure2 = !Regex.IsMatch("csdn\"csdn", pattern);
    另外楼主记住一点,正则表达式的IsMatch方法,只能检测是否exist a,像其他的any a,all什么的,只能先加双重not转换成exist语句
      

  5.   


    我这边是.net 2.0解析有错误
      

  6.   


    感谢大家的回复特别是fishfish1901的补充和提醒
      

  7.   


    看了版主写的表达式,总算懂了楼主的需求了。
    不过版主忘记转义了,正确的应该是这个:
    bool isTure=!Regex.IsMatch(str,"(?<!\\\\)\\\"");
    然后楼主的需求,应该是想让下面第一个case返回true,第二个case返回false string pattern = "(?<!\\\\)\\\"";
    bool isTure1 = !Regex.IsMatch("csdn\\\"csdn", pattern);
    bool isTure2 = !Regex.IsMatch("csdn\"csdn", pattern);
    另外楼主记住一点,正则表达式的IsMatch方法,只能检测是否exist a,像其他的any a,all什么的,只能先加双重not转换成exist语句艾玛引用错了,
    感谢大家的回复特别是fishfish1901的补充和提醒