小编alp*_*avo的帖子

正则表达式从URL中提取文件扩展名

我正在寻找一个.js与以下URI 匹配的正则表达式:

 /foo/bar/file.js?cache_key=123
Run Code Online (Sandbox Code Playgroud)

我正在编写一个函数,试图识别作为参数传入的文件类型.在这种情况下,文件以扩展名结尾,.js是一个javascript文件.我正在使用PHP和preg_match所以我假设这是一个PCRE兼容的正则表达式.最终,我将构建此表达式,并能够检查作为URI传递的多种文件类型,这些URI不仅限于js,还可能是css,图像等.

php regex

4
推荐指数
1
解决办法
3078
查看次数

匹配X-Forwarded-For标头中的最后一个非私有IP地址

我有以下难题.由于我们的服务器堆栈的布局方式:ELB -> Varnish -> Apache我需要Varnish从X-Forwarded-For头部提取最右边的非私有IP地址(由ELB正确设置并且可以信任).

我已经使用以下正则表达式来获取字符串中的最后一个IP地址.我的问题一直在试图弄清楚如何过滤私有IP地址.

((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))(?!.*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))
Run Code Online (Sandbox Code Playgroud)

这是我一直在测试的私有IP过滤器.

(^127\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是正则表达式VMOD,它允许我访问反向引用.

看看下面的例子,它应该说明我想要完成的事情:

92.58.12.100, 10.0.120.5                  -> 92.58.12.100
172.24.10.15, 127.0.0.1, 95.58.12.100     -> 95.58.12.100
92.58.12.100                              -> 92.58.12.100
Run Code Online (Sandbox Code Playgroud)

此外,这是一个RegExr示例的链接.任何帮助将不胜感激.

regex varnish

2
推荐指数
1
解决办法
1050
查看次数

标签 统计

regex ×2

php ×1

varnish ×1