zoukankan      html  css  js  c++  java
  • 将地址转换为链接的正则表达式(regex url href)

    将文章内容中没有链接的地址转换为链接。
    代码如下:
        public static string ShowUrls(string text)
        
    {
            
    //代码来自博客园 http://www.cnblogs.com
            Regex linkRegex = new Regex(" href\\s*=\\s*(?:(?:\\\"(?<url>[^\\\"]*)\\\")|(?<url>[^\\s]*))",
                RegexOptions.IgnoreCase | RegexOptions.Compiled);        
            MatchCollection linkMatchs 
    = linkRegex.Matches(text);
            
            
    string pattern = @"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])";
            MatchCollection matchs;

            
    string clearText = Regex.Replace(text, "(<br>|<br/>)"," ", RegexOptions.IgnoreCase);
            clearText 
    = Regex.Replace(clearText, "<[^>]*>"string.Empty, RegexOptions.Compiled);//清除html标记
            matchs = Regex.Matches(clearText, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
            
    bool flag1 = true;
            
            
    for(int i=0;i<matchs.Count;i++)
            
    {
                Match m 
    = matchs[i];
                
    string link = "<a href=\"" + m.ToString() + "\" target=\"_blank\">" + m.ToString() + "</a>";
                
    if (linkMatchs.Count > 0)
                
    {
                    
    foreach (Match linkMatch in linkMatchs)
                    
    {
                        
    if (linkMatch.Value.IndexOf(m.Value) > -1)
                        
    {
                            flag1 
    = false;
                            
    break;
                        }

                    }

                }
                
                
    if(flag1)
                
    {
                    
    bool flag2 = true;
                    
    for (int j = 0; j < i; j++)
                    
    {
                        
    if (m.ToString() == matchs[j].ToString())
                        
    {
                            flag2 
    = false;
                        }

                    }

                    
    if (flag2)
                    
    {
                        text 
    = text.Replace(m.ToString(), link);
                    }

                }

                
            }

            
    return text;
        }

  • 相关阅读:
    通过结构体某个成员的地址计算结构体首地址 (转)
    2019.9.2课程设计报告
    2019.9.1课程设计报告
    2019.8.31课程设计报告
    2019.8.30课程设计报告
    2019.8.29课程设计报告
    2019.8.28课程设计报告
    2019.8.27课程设计报告
    2019.8.26课程设计报告
    2019.8.25课程设计报告
  • 原文地址:https://www.cnblogs.com/dudu/p/1006119.html
Copyright © 2011-2022 走看看