我正在镜像一些内部网站用于备份目的。截至目前,我基本上使用这个C#代码:C#将相对值转换为HTML字符串中的绝对链接
System.Net.WebClient client = new System.Net.WebClient();
byte[] dl = client.DownloadData(url);
这只是基本上下载的HTML和一个字节数组。这就是我要的。然而,问题在于html中的链接大部分时间都是相对的,而不是绝对的。
我基本上想要在相关链接之前追加完整的http://domain.is以将其转换为将重定向到原始内容的绝对链接。我基本上只关心href =和src =。是否有一个正则表达式可以涵盖一些基本的情况?
编辑[我的尝试]:
public static string RelativeToAbsoluteURLS(string text, string absoluteUrl)
{
if (String.IsNullOrEmpty(text))
{
return text;
}
String value = Regex.Replace(
text,
"<(.*?)(src|href)=\"(?!http)(.*?)\"(.*?)>",
"<$1$2=\"" + absoluteUrl + "$3\"$4>",
RegexOptions.IgnoreCase | RegexOptions.Multiline);
return value.Replace(absoluteUrl + "/", absoluteUrl);
}
http://stackoverflow.com/questions/3836644的重复/ c-convert-relative-to-absolute-links-in-html-string/3836790#3836790你今天早些时候问过的! – 2010-10-01 08:34:05