我想把<a href="cn/about/brief/index.jsp" class="font">学校简介</a>中的cn/about/brief/index.jsp和"学校简介"取出来,怎样用正规表达式实现。

解决方案 »

  1.   

    ^[\u4E00-\u9FFF]+$匹配任意多个汉字
      

  2.   

    取这个cn/about/brief/index.jsp:用string source=null;
    source.split('"')[1].tostring();
      

  3.   

    匹配一个,这样
    string yourStr = ............;
    Match m = Regex.Match(yourStr, @"<a[^<]*?href=((['""])?(?<url>[\s\S]*?)\2|(?<url>\S*))[^>]*?>(?<text>[^<]*?)</a>", RegexOptions.IgnoreCase);
    if (m.Success)
    {
        richTextBox2.Text += m.Groups["url"].Value + "\n";
        richTextBox2.Text += m.Groups["text"].Value + "\n";
    }匹配多个,这样
    string yourStr = ............;
    MatchCollection mc = Regex.Matches(yourStr, @"<a[^<]*?href=(['""])?(?<url>[^'""\s>]*)\1?[^>]*?>(?<text>[^<]*?)</a>", RegexOptions.IgnoreCase);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Groups["url"].Value + "\n";
        richTextBox2.Text += m.Groups["text"].Value + "\n";
    }
      

  4.   

    lxcnn(过客),辛苦了.谢谢!解决了,现在给分.
    能解释下你的正规表达式的各项含义吗?我是初学的,有些地方不是很明白.特别是这个(['""])?(?<url>[^'""\s>]*)\1?[^>]*?>的意思
      

  5.   

    (['""])?(?<url>[^'""\s>]*)\1?[^>]*?>一般考虑href=后有三种情况,“"”,“'”或是直接接网址(['""])?指的是这个,\1?为反向引用,即与前面的“"”或“'”配对(?<url>[^'""\s>]*)这个就是将网址捕获到命名捕获组url里了[^>]*?>这个就是任意非“>”字符,一直匹配到“>”为止
      

  6.   

    (?<=a href=\"+?>.+?(?=</a>)