我需要一个正则表达式来捕获以下3个类似字符串中的相对路径/image/picture/name.jpg。我尝试了很多方法但是我的正则表达式代码中存在一些漏洞,这使得它的工作方式不一致。对于这个具体问题,我找不到任何完美的解决方案。非常感谢任何帮助。
答案 0 :(得分:2)
这应该将URL捕获到组1中:
url\(((?:"|')?)([a-z/\.]*?)\1\)
它还会捕获URL标记的括号内的任何其他内容,这些内容看起来像一个URL但是很好并且特定于案例......
答案 1 :(得分:2)
这会抓住你提到的案例,虽然它有点昂贵的一面:
(?ix-:url\(\s*
(?:
(?<url>[^\)'"][^\)]*[^\)\s]) |
(?:'(?<url>[^']*)') |
(?:"(?<url>[^"]*)")
)\s*
\))
相反,我会使用以下内容,然后手动测试和修剪引号:
url\(\s*(?<url>[^)'"][^\)]*[^\)\s])\s*\)
后面的表达式的缺点是它没有正确处理引用的右括号')'字符,如下例所示:
String: url( '/images/logo Copy(2).jpg' )
答案 2 :(得分:0)
试试这个:
URL(( “|')/图像/图片/ name.jpg(?” |')?)
答案 3 :(得分:0)
如果我理解正确并且你想要括号内的所有内容但不包括引号,则应该执行以下语句。它当然不会接受数字等,但会从遇到的第一个斜杠返回enything,直到最后一个字符不是斜杠或字母字符。
Regex re = new Regex(@“/([a-z /.])*”,RegexOptions.IgnoreCase);
答案 4 :(得分:0)
试试这个:
url\(['"]?(?<url>[^'")])['"]?\)
可以在名为"url"