正则表达式:为站内链接加上域名
2010-01-24 11:42 敏捷的水 阅读(1354) 评论(0) 编辑 收藏 举报1、测试文本
<a href='http://search/a.aspx'>home</a> <a href='/aab/bb'>hello</a><a href='http://www.sohu.com'>sohu</a><p>sdfsf</p> <a href="/aab/bb">hello</a> <div>hello world</div> <a href="aaa/bb"></a>
2、为站内链接加上域名
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string s = File.ReadAllText(@"c:\a.txt"); //给所有非http的链接加上域名,链接前无/ string d = Regex.Replace(s, @"<a\s+href\s?=\s?[\'|\""]((?!http)/.*)?[\""\']", @"<a href=""www.cnblogs.com$1""", RegexOptions.Compiled|RegexOptions.IgnoreCase); //给所有非http的链接加上域名,链接前有/ string e = Regex.Replace(d, @"<a\s+href\s?=\s?[\'|\""]((?!http)(?!/).*)?[\""\']", @"<a href=""www.cnblogs.com/$1""", RegexOptions.Compiled | RegexOptions.IgnoreCase); // Console.WriteLine(d); Console.WriteLine(e); Console.Read(); } } }
a. 不包含http, (?!http)表示。
b. 非贪婪匹配 ?> 代表遇到第一个>匹配结束。
c. $1代表前面的组1.
d. 双引号在模式里\""
e. 双引号在@转义的字符串里用两个""表示.
扫码关注公众号,了解更多管理,见识,育儿等内容
作者: 王德水
出处:http://www.cnblogs.com/cnblogsfans
版权:本文版权归作者所有,转载需经作者同意。
出处:http://www.cnblogs.com/cnblogsfans
版权:本文版权归作者所有,转载需经作者同意。