获取css图片路径的正则表达式
今天Xushine研究院来和大家讨论下关于CSS图片路径获取的正则表达式~
假设我们的CSS内容这样的:
- CSS code
.sub_nav { PADDING-BOTTOM: 0px; PADDING-LEFT: 76px; WIDTH: 467px; PADDING-RIGHT: 77px; BACKGROUND: url(http://k.xushine.net/20101206/9ae_90f01bfa_77a8_4701_982f_9ffd24f51a02_0.jpg) repeat-y left top; PADDING-TOP: 0px } .sub_nav_bottom { PADDING-BOTTOM: 17px; WIDTH: 467px; BACKGROUND: url(http://k.xushine.net/20101204/9ae_34eda8e0_0f76_4e08_aad9_48f74a0d4b5f_1.jpg) no-repeat left bottom } .sub_nav_top { TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 20px; PADDING-LEFT: 30px; WIDTH: 407px; PADDING-RIGHT: 30px; BACKGROUND: url(http://k.xushine.net/20101204/9ae_34eda8e0_0f76_4e08_aad9_48f74a0d4b5f_2.jpg) no-repeat left top; PADDING-TOP: 17px }
现在如果我们需要提取的是关于这个图片的jpg gif 以及png这三种常用的图片的url,我们需要怎么来进行呢Xushine研究院来和大家讨论下关于CSS图片路径获取的正则表达式~
在讨论这个问题之前,随手写了一个正则,发现其实并不是完全匹配。。。所以Xushine研究院才会把这个问题拿出来讨论~
现在看下刚刚兔兔写的正则:background:url((?<ImgUrl>.*?))
乍一看木有错误,但是仔细一看就发现问题咯~background:#fffdf4 url(../images/k_error.gif) 比如这种写法...就匹配不到了...这就是无法识别的转义序列呀~
现在给出一个完整的实例程序大家一看便知~
public static string[] GetHtmlImageUrlList(string sHtmlText)
{
List<string> list = new List<string>();
Regex regImg = new Regex(@"(?is)(?<=BACKGROUND:s*url()[^)]+(?=))");
MatchCollection matches = regImg.Matches(sHtmlText);
foreach (Match m in matches)
{
list.Add(m.Value);
}
return list.ToArray();
}
string[] urls = GetHtmlImageUrlList(yourStr);
foreach (string s in urls)
{
richTextBox2.Text += s + "n";
}
00xx研究院怎么什么都研究啊
必须的啊~ 该研究的研究 不该研究的还是要研究喔
wery nice thanks
推荐用opera浏览器哦 亲~