我需要帮助才能获得Regex的URL?

时间:2015-02-01 18:06:16

标签: c# .net regex

如何从CSS规则中提取链接,以便我可以

string1 = "background-image: url(hi.jpg);"
string2 = "background-image: url(hi.jpg)"
string4 = @"background-image: url("hi.jpg")"
string5 = @"background-image: url("hi.jpg"); display:none"
string6 = "background-image: url('hi.jpg')"
string7 = "background-image: url('hi.jpg');"

如何使用正则表达式从给定字符串中提取链接值,而不管字符串是双引号还是单引号,或者是否有分号;

示例:

getUrl(string1); // outputs:  hi.jpg
getUrl(string2); // outputs:  hi.jpg
getUrl(string3); // outputs:  hi.jpg
getUrl(string4); // outputs:  hi.jpg
getUrl(string5); // outputs:  hi.jpg
getUrl(string6); // outputs:  hi.jpg
getUrl(string7); // outputs:  hi.jpg

我尝试了以下但是对我不起作用:

private string getUrl(string input) {
    return Regex.Match(input, @"(?<=\().+?(?=\))").Value;
}

修改 如果没有引号,上述方法只能正常工作。如果还有单引号或双引号,怎么能让它工作?

1 个答案:

答案 0 :(得分:2)

(?<=\()['"]?(.+?)['"]?(?=\))

你可以尝试这个。抓住捕获或组1。

参见演示。

https://regex101.com/r/vD5iH9/24