[英]need a regex for multiple similar strings
我需要一个正则表达式来从以下 3 个类似字符串中捕获相对路径/image/picture/name.jpg 。 我尝试了很多方法,但我的正则表达式代码中存在一些漏洞,这使其工作不一致。 对于这个特定问题,我找不到任何完美的解决方案。 任何帮助是极大的赞赏。
这应该将 URL 捕获到组 1 中:
url\(((?:"|')?)([a-z/\.]*?)\1\)
它还将捕获 URL 标签的括号内的任何其他内容,这些括号看起来像 URL,但很好并且特定于案例......
这将抓住你提到的情况,虽然它有点贵:
(?ix-:url\(\s*
(?:
(?<url>[^\)'"][^\)]*[^\)\s]) |
(?:'(?<url>[^']*)') |
(?:"(?<url>[^"]*)")
)\s*
\))
相反,我会使用以下内容,然后手动测试和修剪引号:
url\(\s*(?<url>[^)'"][^\)]*[^\)\s])\s*\)
后面的表达式的缺点是它不能正确处理带引号的右括号 ')' 字符,如下例所示:
String: url( '/images/logo Copy(2).jpg' )
尝试这个:
url(("|')?/image/picture/name.jpg("|')?)
如果我对您的理解正确,并且您希望括号内的所有内容但不包含引号,则应该执行以下语句。 它当然不会接受数字等,但会从遇到的第一个斜杠到最后一个字符返回任何内容,而不是斜杠或字母字符。
正则表达式 re = new Regex(@"/([az/.])*", RegexOptions.IgnoreCase);
尝试这个:
url\(['"]?(?<url>[^'")])['"]?\)
确切的 url 可以在名为"url"
的组中匹配
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.