Regex to check ending of URL query parameter
我有以下测试字符串:
http://example.com/?foo=bar&path=a/b/c.png/bar=foo
http://example.com/?foo=bar&path=a/b/c.png&bar=foo
http://example.com/?foo=bar&path=a/b/c.png
http://example.com/?foo=bar&path=a/b/c.png/
我在寻找一个只匹配path=a/b/c.png的regex(路径查询参数,不带尾随斜杠)。路径查询参数可以位于行的开头、中间或结尾。
到目前为止,我有以下regex path=[^#&]*:
你可以在这里看到:https://regex101.com/r/v4dqdx/1/
谢谢你的帮助!
编辑:更清楚的是,第1行和第4行中带有尾随斜杠的查询参数不应匹配。
代码
请参见此处使用的regex:多行使用m标志
1 2
| \bpath=[^#&
]*\.\w+(?=[&#]|$) |
如果内容不是多行,请使用此选项:
1
| \bpath=[^#&]*\.\w+(?=[&#]|$) |
号解释
- \b断言作为词边界的位置。单词边界是与(^\w|\w$|\W\w|\w\W)匹配的位置。
- path=字面上匹配这个
- [^#&
]*匹配除#&
以外的任何字符任何次数
- \.与文字点匹配
- \w+匹配一个或多个字字符
- (?=[]|$)正向前看,确保集合中的字符匹配或是行尾。
- 这不起作用regex101.com/r/e1ywhy/13
- @罗曼佩雷克勒斯你读过我的答案吗?我特别为这个写了一张便条。我有一个到Regex101的链接。这100%有效。
- 张贴正确的工作模式
- @罗曼佩雷克勒斯编辑以防止进一步混乱。如果你不介意在之后整理你的评论(以防将来的观众感到困惑)
- 感谢您的帮助,但我正在寻找一个与第1行和第4行中的查询参数不匹配的regex(忽略带有尾随斜杠的查询参数)。
- @也许应该在问题中说明,那就给我一点时间
- 我更新了我的问题,谢谢!
- @Koji更新了新的规格
- @RomanPerekhrest更新为新规范
- @RomanPerekhrest你没看到m旗。为什么你不点击我创建的regex101链接来查看它的使用情况,而不是让它自己工作?
- 非常感谢@ctwheels!