string str = "fjdsklfjlk65412d(a(b)c)1f1d0";
        Match m = Regex.Match(str, @"(?<=.*\()(?<content>.*)(?=\).*)", RegexOptions.IgnoreCase);
        if (m.Success)
        {
            str = m.Groups["content"].Value;
        }
        Response.Write(str);

解决方案 »

  1.   

    第一个问题:
            str = "(2*(1+1))";
            str = str.Remove(0, 1);
            str = str.Remove(str.Length-1, 1);
            Response.Write(str);
      

  2.   

    第一个就不说了,可以用多种方法实现,当然也可以用正则,不过没这必要//string str = "2*(1+1)";
    string str = "fjdsklfjlk65412d(a(b)c)1f1d0";
    Match m = Regex.Match(str, @"(?<=\().*(?=\))");
    if (m.Success)
        MessageBox.Show(m.Value);
      

  3.   

    第一个 Regex.Replace(str, @"(^\()|(\)$)","");
    第二个 ^[^\(\)]*\((?<content>[\s\S]*)\)[^\)\(]*$
          Groups["content"]
      

  4.   

    我觉得这个正则式:@"(? <=.*\()(? <content >.*)(?=\).*)"
    如果提取楼主举例的"fjdsklfjlk65412d(a(b)c)1f1d0"还是可以的.但如果你的意思只是去掉最外面的括号则不行,如:
    "fjdsklfjlk65412d(a(b(d))c)1f1d0",提取出来将是:b(d)
    ----------------------------------------------------
    改一下:
    "(?=\()(?<content>.*)(?<=\))"
      

  5.   

    现给个, Javascript 的, 测试通过? , 改其它语言都行. 
    正则式: var rx=/.*?\((.+)\).*/<script language="javascript">
    var s1="fjdsklfjlk65412d(a(b)c)1f1d0"
    var s2="(2*(1+1))";var r1 = s1.replace(rx, "$1")
    var r2 = s2.replace(rx, "$1")
    alert(r1);
    alert(r2);
    </script>
      

  6.   

    <script language="javascript">
    var s1="fjdsklfjlk65412d(a(b)c)1f1d0"
    var s2="(2*(1+1))";
    var rx=/.*?\((.+)\).*/
    var r1 = s1.replace(rx, "$1")
    var r2 = s2.replace(rx, "$1")
    alert(r1);
    alert(r2);</script>