<?xml version="1.0" encoding="utf-8" ?><xml><row expect="120301001" opencode="0,3,8,4,2" opentime="2012-3-1 0:05:00" /><row expect="120301002" opencode="9,5,9,6,9" opentime="2012-3-1 0:10:00" /></xml>   这样如何用正则取出  120301001 0,3,8,4,2 2012-3-1 0:05:00  120301002 9,5,9,6,9 2012-3-1 0:10:00

解决方案 »

  1.   

    /<row(\s[^=]+="([^"]+")+)\s\/>/gi
      

  2.   

    /<row(\s[^=]+="([^"]+)")+\s\/>/gi
      

  3.   

    var reg = /(?:expect|opencode|opentime)\s*=\s*"([\s\S]+?)(?=")/mg;
    var a = '<?xml version="1.0" encoding="utf-8" ?><xml><row expect="120301001" opencode="0,3,8,4,2" opentime="2012-3-1 0:05:00" /><row expect="120301002" opencode="9,5,9,6,9" opentime="2012-3-1 0:10:00" /></xml>';
    while (reg.exec(a)) {
    console.info(RegExp.$1);
    }
      

  4.   

    有没有C#的 我想知道C#的 你们是js的
      

  5.   

    有没有C#的 我想知道C#的 你们是js的
      

  6.   

    有没有C#的 我想知道C#的 你们是js的
      

  7.   


    //你说你在JS版求C#的代码,不如直接把帖子发到C#版
    void Main()
    {
    var html = @"<?xml version=""1.0"" encoding=""utf-8"" ?><xml><row expect=""120301001"" opencode=""0,3,8,4,2"" opentime=""2012-3-1 0:05:00"" /><row expect=""120301002"" opencode=""9,5,9,6,9"" opentime=""2012-3-1 0:10:00"" /></xml>";
      foreach(Match m in Regex.Matches(html,@"(?i)<row(\s[^=]+=""([^""]+)"")+\s\/>"))
      {
        foreach(Capture c in m.Groups[2].Captures)
    {
    Console.WriteLine("{0}\t",c.Value);
    }
      }
      
      /*
    120301001
    0,3,8,4,2
    2012-3-1 0:05:00
    120301002
    9,5,9,6,9
    2012-3-1 0:10:00
      */
    }