正则表达式如何获取url()内容

时间:2013-06-17 16:45:20

标签: c# css regex url

大家好我正在尝试使用正则表达式解析css网址,但任何内容都失败了..

Regex cssUrls = new Regex(@"url\((?<char>['""])?(?<url>.*?)\k<char>?\)");


foreach (var item in cssUrls.Matches("@import url(pepe/global.css);"))
{
    MessageBox.Show(item.ToString());
}

输出为:url(pepe/global.css)但我需要:pepe/global.css

提前致谢!

2 个答案:

答案 0 :(得分:0)

Matches对象中的cssUrls.Matches包含所有匹配的字符串,因此item.ToString()给出了整个匹配。您希望item.Groups["url"].Value之类的内容仅提取匹配的url个命名部分。

答案 1 :(得分:0)

可能的替代解决方案,部分使用正则表达式和字符串操作实现。

Regex cssUrls = new Regex(@"\(['"]?(?<url>[^)]+?)['"]?\)");

foreach (var item in cssUrls.Matches("@import url(pepe/global.css);"))
{
    MessageBox.Show(item.TrimStart("(").TrimEnd(")").ToString());
}