我正在编写一个用于从文件中获取 url 的正则表达式。
Regex UrlRegex = new Regex(@"url\(((..)?(\/[^)]+))\)");
此正则表达式从我的文件中获取以下值
url(/fonts/lr-icons.eot?#iefix)
但我必须忽略“?#iefix”值并需要如下值
url(/fonts/lr-icons.eot)
有人可以建议吗?
我正在编写一个用于从文件中获取 url 的正则表达式。
Regex UrlRegex = new Regex(@"url\(((..)?(\/[^)]+))\)");
此正则表达式从我的文件中获取以下值
url(/fonts/lr-icons.eot?#iefix)
但我必须忽略“?#iefix”值并需要如下值
url(/fonts/lr-icons.eot)
有人可以建议吗?
要匹配,请在您的停止条件中url(/fonts/lr-icons.eot)
添加一个:。这将使它消耗一切,直到找到 a或现在, a 。?
[^)]
[^)?]
)
?
最后,你得到?#iefix
第 4 组的值,使用表达式:
url\(((..)?(\/[^?]+)(\?[^)]+)?)\)
在此处查看在线演示。在该表达式中,如果有 a ?something
,它将出现在第 4 组中。
另外,请注意那些(..)?
不匹配两个点。它们匹配两个任意字符。确保这是你想要的。相反,如果您希望它仅匹配两个点,则应转义它们:(\.\.)?
.