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

I need help to get URL with Regex?

如何从 CSS 规则中提取 link,这样如果我这样做

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');"

如何创建一个函数,使用正则表达式从给定字符串中提取 link 值,而不管该字符串是双引号还是单引号,或者是否有分号;

示例:

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;
}

编辑: 上面的方法只有在没有引号的情况下才能正常工作。如果还有单引号或双引号,如何让它工作?

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

您可以尝试 this.Grab 捕获或组 1。

查看演示。

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