读书人

求解因特网址转换的正则表达式

发布时间: 2012-11-03 10:57:43 作者: rapoo

求解网址转换的正则表达式
原字符串格式:
<loc>/Help/List-0018,0019.shtml</loc>
要求:
1>以.shtml .aspx为扩展名的超链接字符串
转换为目标网址:<loc>http://abc.sina.com.cn/Help/List-0018,0019.shtml</loc>

2>以.html .htm为扩展名的超链接字符串
转换为目标网址:<loc>http://www.sohu.com/Help/About Us.html</loc>
求解正则表达式,谢谢!

[解决办法]

探讨
原字符串格式:
<loc>/Help/List-0018,0019.shtml</loc>
要求:
1>以.shtml .aspx为扩展名的超链接字符串
转换为目标网址:<loc>http://abc.sina.com.cn/Help/List-0018,0019.shtml</loc>

2>以.html .htm为扩展名的超链接字符串
转换为目标网址:<loc>http://www.sohu.com/Help/About Us.html</loc>

[解决办法]
C# code
    string[] strarray = new string[] { @"<loc>/Help/List-0018,0019.shtml</loc>",@"<loc>/Help/About Us.html</loc>"};            string[] Replacestr = new string[] { @"http://abc.sina.com.cn",@"http://www.sohu.com"};            List<string> list = new List<string>();            foreach (string s in strarray)            {                if (s.Contains(".shtml") || s.Contains(".aspx"))                {                    string lstr = System.Text.RegularExpressions.Regex.Replace(s, @"(?<=<loc>).*?(?=/Help)", Replacestr[0]);                    list.Add(lstr);                }                if (s.Contains(".html") || s.Contains(".htm"))                {                    string lstr = System.Text.RegularExpressions.Regex.Replace(s, @"(?<=<loc>).*?(?=/Help)", Replacestr[1]);                    list.Add(lstr);                }            }            list.ForEach(x => Response.Write(x)); 

读书人网 >asp.net

热点推荐