正则表达式:为站内链接加上域名
2010-01-24 11:42 敏捷的水 阅读(1366) 评论(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
版权:本文版权归作者所有,转载需经作者同意。
浙公网安备 33010602011771号