a="^[0-9]{1,4}$"; //这行必需是字符串,不可更改,但可改其它任何行
b="1234";
c="a32";Regex reg = new Regex(@"^[0-9]{1,4}$");
//这样是可以的,但如何把a这个变量放入其中呢
Regex reg = new Regex("@\""+a+"\"");
//这样就不行,怎么验证都返回false
Match mch = reg.Match(inValue);
if (mch.Success)
    return true;
else
    return false;求解js中可以实用eval(a),但c#中不知道要用什么办法了

解决方案 »

  1.   

    Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase); 
      

  2.   

    Regex reg = new Regex("@\"" + Regex.Escape(a) + "\"");
      

  3.   

    Regex reg = new Regex("@\"" + (a) + "\"");详见
    http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.escape.aspx
      

  4.   

    Regex reg = new Regex("@\"" + Regex.Escape(a) + "\"");详见
    http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.escape.aspx
      

  5.   

    按你的意思,直接这样就可以了
    string a="^[0-9]{1,4}$"; 
    Regex reg = new Regex(a);这里不能用Regex.Escape,因为楼主字符串中的元字符表示的就是元字符,不需要转义
    不推荐这样使用正则,因为异常是不可控的
      

  6.   

    哦,理解错了。
    Regex reg = new Regex(a);