62,066
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace sxLdfang
{
class Program
{
static void Main(string[] args)
{
string html = @"<p><strong><em><u></u></em></strong><del> 富文本框内容编码</del></p><p><strong><em><u></u></em></strong><del></del> </p><p><img src="../ScratchFile/2011080303562437.jpg" alt="" /></p>
";
string pattern = @"(?<=;<img src=")((?!").)*";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}
Console.ReadKey();
}
}
}
运行结果:
../ScratchFile/2011080303562437.jpg
Regex regImg = new Regex(@"(?is)<(img|embed|bgsound)[^>]*?src[\s]*=[\s]*[\""\'](?<imgSrc>[^\""\']*)[\""\'][^>]*>");
MatchCollection matchs = regImg.Matches(strHtml);
//TODO:开始字符
int iPos = 0;
foreach (Match m in matchs)
{
//...
}
string str = "<p><strong><em><u></u></em></strong><del> 富文本框内容编码</del></p><p><strong><em><u></u></em></strong><del></del> </p><p><img src="../ScratchFile/2011080303562437.jpg" alt="" /></p>";
List<string> list = new List<string>();
while(str.indexOf("src="") > -1){
int flag = str.IndexOf("src="");
string tmp = str.Substring(flag + 10, str.Length - flag - 10); // 去掉前面不要的部分
int endFlag = str.IndexOf("""); // 找到图片地址后的引号
list.Add(tmp.Substring(0, tmp.Length - endFlag)); // 截取图片地址
str = tmp;
}
/// <summary>
/// 取得HTML中所有图片的 URL。
/// </summary>
/// <param name="sHtmlText">HTML代码</param>
/// <returns>图片的URL列表</returns>
public static string[] GetHtmlImageUrlList(string sHtmlText)
{
// 定义正则表达式用来匹配 img 标签
Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
// 搜索匹配的字符串
MatchCollection matches = regImg.Matches(sHtmlText);
int i = 0;
string[] sUrlList = new string[matches.Count];
// 取得匹配项列表
foreach (Match match in matches)
sUrlList[i++] = match.Groups["imgUrl"].Value;
return sUrlList;
}