寻找标题中描述的帮助 - 我只需匹配在字符串中某处有大写字符的URL并且没有文件扩展名,我希望在表达式中指定。
匹配大写字母段没有问题,但我似乎无法找到找到没有扩展名的方法。
即。这不应该打:
http://www.example.com/upload/campaigns/TOY/img/test-logo.svg
这不应该打
http://www.example.com/upload/campaigns/toy/testpage
但这应该
http://www.example.com/upload/campaigns/TOY/testpage
我有这个atm,目前只选择时段,但我认为它与我实际需要的有些接近。
([A-Z\-_0-9\/\:\.]*\.(?!jpg|jpeg|png|gif))
编辑:我现在有了这个:
([A-Z\-_0-9\/\:\.]*\.(?!.*(?:svg|jpe?g|png|gif)$).*)
我正在对http://regexr.com/进行测试,启用/m
会给我预期的结果,所以我需要将其作为表达式的一部分包含在内,还是仅适用于此测试场景?在生产中,表达式将在网址重写中用作单个字符串。
答案 0 :(得分:1)
您可以使用
([\w/:.-]*\.(?!.*(?:svg|jpe?g|png|gif)$).*)
在您的生产环境中。仅在您测试多行字符串的演示站点上需要/m
修饰符。
<强>详情:
(
- 捕获第1组匹配:
- zero or more more word chars (letters, digits or
_ ),
/ ,
:,
。and
- `symbols \.
- 一个点(?!.*(?:svg|jpe?g|png|gif)$).*
- 如果没有.*
,svg
,jpg
,jpeg
,则可以使用任意0个字符(png
) }或gif
在字符串的末尾)
- 第1组结束。