假设有一串这样的字符串
 <BH_CURPAGE VALUE=">" ONLY="FALSE" AUTOLINK="TRUE" TARGET="_blank" EXTRA="aaa"></BH_CURPAGE>
我需要一个正则匹配它,还要取到里面属性的值。里面的属性值是动态的,而且还可以某个属性可写可不写
 <BH_CURPAGE VALUE=">" ONLY="FALSE"></BH_CURPAGE> 这样写也行
请问大侠们能帮我解决吗?很急啊的

解决方案 »

  1.   

    <BH_CURPAGE.*></BH_CURPAGE>不是很清楚你的要求  试试这个看看能不能打到你的要求
      

  2.   

    试试这个@"<(?<head>.+?)\b.*?>(?!>)[^<>]*</\1>"
      

  3.   

    1.先用<(?<head>.+?)\b.*?>(?!>)[^<>]*</\k'head'>取道一组
    2.用(?<= )(?<item>[^=]+)=(?<value>[^ ]+)获取具体每个的名和值,取item和value属性即可。
      

  4.   

    string s = "<BH_CURPAGE VALUE=\">\" ONLY=\"FALSE\"></BH_CURPAGE><a>adf</a>";
    Regex reg = new Regex(@"(?i)<BH_CURPAGE(.+?)((/>)|(></BH_CURPAGE>))");
    s = reg.Match(s).Groups[1].Value;
    reg = new Regex(@"(\w+)=""(.+?)""");
    MatchCollection mats = reg.Matches(s);
    foreach (Match mat in mats)
        Console.WriteLine("{0}: {1}", mat.Groups[1].Value, mat.Groups[2].Value);