ngx.re.match

语法: captures, err = ngx.re.match(subject, regex, options?, ctx?, res_table?)

环境: init_worker_by_lua*, set_by_lua*, rewrite_by_lua*, access_by_lua*, content_by_lua*, header_filter_by_lua*, body_filter_by_lua*, log_by_lua*, ngx.timer.*, balancer_by_lua*, ssl_certificate_by_lua*, ssl_session_fetch_by_lua*, ssl_session_store_by_lua*

更多详解

官方的DEMO

 local m, err = ngx.re.match("hello, 1234", "[0-9]+")
if m then
-- m[0] == "1234" else
if err then
ngx.log(ngx.ERR, "error: ", err)
return
end ngx.say("match not found")
end

从URL地址中获取域名,脚本:ngx-re-match.lua

    local m, err = ngx.re.match("http://www.tinywan.com/live", "(?<=://)[A-Za-z0-9.]+(?=/)")
if m then
-- m[0] == "1234"
ngx.say(m[])
ngx.say(m[])
else
if err then
ngx.log(ngx.ERR, "error: ", err)
return
end ngx.say("match not found")
end
ngx.say('finished')

虚拟主机:

    server {
listen ;
server_name 127.0.0.1;
resolver 8.8.8.8; location /ngx_re_match {
lua_code_cache off;
content_by_lua_file $path/lua/ngx-re-match.lua;
}
}

curl 请求结果:

curl http://127.0.0.1:8334/ngx_re_match
www.tinywan.com
nil
finished

如果想获取一级域名:tinywan.com 请使用表达式:

(?<=://w{}.)[A-Za-z0-.]+(?=/)

帮助文档:

http://blog.csdn.net/weiyuefei/article/details/38439017

Openresty 学习笔记(二)Nginx Lua 正则表达式相关API的更多相关文章

  1. openresty 学习笔记二:获取请求数据

    openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...

  2. Unity学习笔记(4): 碰撞相关API

    Unity3D中的碰撞: 在unity中,有普通碰撞体Collider和触发器(Trigger)两种碰撞体,两个普通碰撞体会发生碰撞并产生力学现象,触发器则像是个无法触碰而又真实存在的东西,也会触发碰 ...

  3. openresty 学习笔记四:连接mysql和进行相关操作

    openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...

  4. openresty 学习笔记三:连接redis和进行相关操作

    openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...

  5. openresty 学习笔记一:环境安装

    openresty 学习笔记一:环境安装 openresty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭 ...

  6. amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules

    amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...

  7. openresty 学习笔记小结:综合应用实例

    openresty 学习笔记小结:综合应用实例 这个综合实验实现的功能其实很简单,用户访问一个页面,显示一个默认页面.输入参数(post或者get都可以),如果参数在数据库查询得到并满足一定条件,根据 ...

  8. openresty 学习笔记五:访问RabbitMQ消息队列

    openresty 学习笔记五:访问RabbitMQ消息队列 之前通过比较选择,决定采用RabbitMQ这种消息队列来做中间件,目的舒缓是为了让整个架构的瓶颈环节.这里是做具体实施,用lua访问Rab ...

  9. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

随机推荐

  1. day2 网络基础

    网路基础 网络OSI模型七层: 物理层: 定义特性:机械,电器,功能,过程: 定义接口标准:双绞线,光纤,同轴电缆: 相关协议:无: 数据链路层: 定义帧的开始结束,封装成帧,差错校验,透明传输(防止 ...

  2. 基于Thinkphp5.0 小程序登录插件应用

    资源连接: wulongtao/think-wxminihelper 具体怎么安装,不介绍了,有不懂再问我吧: 主要重点如下: wepy:index.wpy this.$parent.getUserI ...

  3. MT【254】值域包含值域

    已知函数$f(x)=x-\dfrac{1}{1+x},g(x)=x^2-2ax+4,$若对任意$x_1\in[0,1]$,存在$x_2\in[1,2]$,使得$f(x_1)=g(x_2)$,则实数$a ...

  4. 聊聊GarbageCollectionNotificationInfo

    序本文主要研究一下GarbageCollectionNotificationInfo CompositeDatajava.management/javax/management/openmbean/C ...

  5. Scout YYF I POJ - 3744(概率dp)

    Description YYF is a couragous scout. Now he is on a dangerous mission which is to penetrate into th ...

  6. debugger

    今天爬取cfda时遇到的困难,一旦开启了调试,就debugger pause, ???还有这种操作 一顿google,百度,解决了这个问题,点一下Deactivate breakPoints,然后点一 ...

  7. Gym - 100989F

    You must have heard about Agent Mahone! Dr. Ibrahim hired him to catch the cheaters in the Algorithm ...

  8. Callable和Future、FutureTask的使用

    http://www.silencedut.com/2016/06/15/Callable%E5%92%8CFuture%E3%80%81FutureTask%E7%9A%84%E4%BD%BF%E7 ...

  9. VS Code汉化

    F1搜索  Configure Language { // Defines VS Code's display language. // See https://go.microsoft.com/fw ...

  10. Python三大web框架简单介绍

    Django 是重量级框架:它封装的的功能常丰富非常多所以它是重量级,Django的文档最完善.市场占有率最高.招聘职位最多.Django提供全套的解决方案(full-stack framework ...