0

大家好,我正在尝试使用正则表达式解析 css url,但一切都失败了..

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

提前致谢!

4

2 回答 2

0

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

于 2013-06-17T16:54:57.387 回答
0

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

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

foreach (var item in cssUrls.Matches("@import url(pepe/global.css);"))
{
    MessageBox.Show(item.TrimStart("(").TrimEnd(")").ToString());
}
于 2013-06-17T17:05:22.007 回答