string str="var h#ID#='90'";
            Regex reg=new Regex (@"(?<=\').*(?=\')");
            MessageBox.Show(reg.Match(str).Value);

解决方案 »

  1.   

    string str="var h#ID#='90'";
                Regex reg=new Regex (@"(?<=\')[^\']*(?=\')");
                MessageBox.Show(reg.Match(str).Value);
      

  2.   

    那就是你的源字符串?Regex reg = new Regex(@"(?<==')[^']*(?=')");
    MatchCollection mc = reg.Matches(yourStr);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n";
    }
      

  3.   

    感谢liherun,
    string str="var h#ID#='90'"; Regex reg=new Regex (@"(?<=\')[^\']*(?=\')"); MessageBox.Show(reg.Match(str).Value);
    如果有这个匹配,一次只能匹配出一个来,我现在是想通过一个表达式,一次性把var h#ID#='90';
    var w#ID#='960';
    var a#ID#='xxxxxxxxxxx' 中的90 960 xxxxxxxx一次都取出来,比如都取出来放到数组中,谢谢
      

  4.   

    你用了richtextbox,LZ要试还要再去拉一个控件,好麻烦的哟,所以他就不试你的了。而他的是直接MessageBox输出的,直接复制就能看到,所以就只看他的喽。
      

  5.   

    using System;
    using System.Text.RegularExpressions;class Program
    {
      static void Main()
      {
        string s = @"var h#ID#='90';
    var w#ID#='960';
    var a#ID#='xxxxxxxxxxx'";    // 这就你是你要的字符串数组:
        string[] a = Regex.Replace(s, @"[^']*'([^']*)'[^']*", "$1|").Trim('|').Split('|');    // 输出来看看:
        foreach (string t in a)
        {
          Console.WriteLine("[{0}]", t);
        }
      }
    }
    /* 输出:
    [90]
    [960]
    [xxxxxxxxxxx]
    */