<a href="内容一"  内容3 >内容2</a>
<a href=内容一   内容3 >内容2</a>
<a href='内容一'  内容3 >内容2</a>
怎么样写一个正则表达式获获取以上html中的"内容一"和"内容2",不获取内容3
请教正则高手...

解决方案 »

  1.   

    (?is)<a[^>]*href=(['"]?)(?<href>\w+)\1[^>]*>(?<temp>[^<]+)</a>取分组href和temp
      

  2.   


    //更正了一下正则
    void Main()
    {
    string str=@"<a href=""内容一"" 内容3 >内容2</a>
    <a href=内容一 内容3 >内容2</a>
    <a href='内容一' 内容3 >内容2</a>";
    foreach(Match m in Regex.Matches(str,@"(?is)<a[^>]*href=(['""]?)(?<href>[^'""\s]+)\1[^>]*>(?<temp>[^<]+)</a>"))
    {
      Console.WriteLine(m.Groups["href"].Value);
      Console.WriteLine(m.Groups["temp"].Value);
    }
    }
    /*
    内容一
    内容2
    内容一
    内容2
    内容一
    内容2*/
      

  3.   

    href="(?<group1>.+?)".+>(?<group2>.+?)</a>
    group1 内容1
    group2 内容2
      

  4.   

        static void Main(string[] args)
        {
            string str = @"<a href=""内容一"" 内容3 >内容2</a>
                        <a href=内容一 内容3 >内容2</a>
                        <a href='内容一' 内容3 >内容2</a>";
            MatchCollection mc = Regex.Matches(str, @"<a.*?href=(['""]?)([^'""\s]+)\1[^>]*>([^<]+)");
            foreach (Match m in mc)
            {
                Console.WriteLine(m.Groups[2] +","+ m.Groups[3]);
            }
        }
      

  5.   

    漏了一个情况了...
    <a href=内容一>内容2</a> 没有内容3???