大家好我正在尝试使用正则表达式解析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
提前致谢!
答案 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());
}