匹配如下字符串:
[#多个任意字符或汉字:多个任意数字#]
请高手指点,谢谢

解决方案 »

  1.   

    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
    ^\[\#.+:\d\d*\#\]$
      

  2.   

    大家可以看一下这段字符串
    "[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]"Regex re = new Regex(this.regStr);
    MatchCollection match = re.Matches(temp);理论上应该返回3段,但每次返回的集合长度都是0,头疼死了。
      

  3.   

    string yourStr = @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
    string regexStr = @"\[\#([^\:]+)\:([^\#]+)\#\]";
    MatchCollection mc = Regex.Matches(yourStr, regexStr);
    foreach(Match m in mc)
    {
        string s1 = m.Groups[0].Value;
        string s2 = m.Groups[1].Value;

    Console.WriteLine("{0} : {1}", s1, s2);
    }
      

  4.   

    "[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]"
    使用\[\#[^:]+\:[\d]+\#\]
    使用The Regulator得到三个结果。
    可以试试。
      

  5.   

    string yourStr = @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
    我已经得到了3个结果
    但是要对他们单独进行替换
    例如: 将[#产品_0.产品ID:2#]替换成[#产品[email protected]#]
    如何实现呢?
      

  6.   

    string yourStr = @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
    string regexStr = @"\[\#([^\:]+)\:([^\#]+)\#\]";
    MatchCollection mc = Regex.Matches(yourStr, regexStr);
    foreach(Match m in mc)
    {
        string s1 = m.Groups[0].Value;
        string s2 = m.Groups[1].Value;

    Console.WriteLine("{0} : {1}", s1, s2);
    }
      

  7.   

    @"\[\#([^\:]+)\:([^\#]+)\#\]";
    注意mobydick的这个正则表达式并不完全正确,对于
    @"[#产品_0.产品ID:2#][#产品_0.单价:3#][#求和:4#]";
    的确匹配,
    但对于
    @"[#产品_0.产品ID:aaa#][#产品_0.单价:ccc#][#求和:ddd#]";
    它也匹配,也就是说,那是充分条件而非必要条件。