对于此字符串
abc.com/file/some.png?v=123
如何匹配我使用.png?
/..*??/
但是它是匹配.com/file/some.png?
,那么为什么惰性匹配规则在这里不起作用呢?
这个答案有很多变体。我建议在最后一个/
字符之后匹配第一个文件后缀。
这可以用这个正则表达式完成
/(?!.*/).w+?/
解释
(?!.*/).w+?
选项:不区分大小写;点与换行符不匹配;^$ 换行符处匹配
- 断言不可能从这个位置开始匹配下面的正则表达式(负展望(
(?!.*/)
- 匹配任何不是换行符的单个字符(换行符、回车符、行分隔符、段落分隔符(
.*
- 在零次和无限次之间,尽可能多地回馈,根据需要回馈(贪婪(
*
- 在零次和无限次之间,尽可能多地回馈,根据需要回馈(贪婪(
- 将字符"/"字面意思匹配
/
- 匹配任何不是换行符的单个字符(换行符、回车符、行分隔符、段落分隔符(
- 匹配字符"."字面意思
.
- 匹配作为"单词字符"(仅限 ASCII 字母、数字或下划线(的单个字符
w+
- 在一次到无限次之间,尽可能多地回馈,根据需要回馈(贪婪(
+
- 在一次到无限次之间,尽可能多地回馈,根据需要回馈(贪婪(
- 匹配问号字符
?
\1
- 插入反斜杠
- 从字面上插入字符"1"
1
与正则表达式好友一起创建