本章我们主要讲述一下nginx中表达式匹配(ngx_regex)的实现。
1. ngx_regex_t数据结构
这里ngx_regex_t
只是对pcre
的一个再次封装。其中:
2. 数据结构
ngx_regex_compile_t
表示一个编译的正则表达式模式(pattern)。其各字段含义如下:
-
pattern: 对应的正则表达式模式
-
pool: 所关联的内存池
-
options: 执行pcre_compile()时所传递的参数
-
regex: 编译完成后的pcre实例
-
captures: 用于保存pattern
中所有子模式的个数,包括命名子模式(named subpattern)和非命名子模式。
-
named_captures: 用于保存pattern
中命名子模式的个数
-
name_size: name table
中每一项的大小
-
names: name table
的入口地址
-
err: 用于存放相应的错误
3. ngx_regex_elt_t数据结构
存放到ngx_pcre_studies
链表中的元素, 其中各字段含义如下:
4. 相关函数声明
5. 附录: PCRE库中pcre_fullinfo混合子模式调用结果
编译运行:
[参看]
-
Nginx模块开发中使用PCRE正则表达式匹配
-
nx单独使用pcre的一个小坑
-
深入解析Nginx的pcre库及相关注意事项
-
Nginx模块开发中使用PCRE正则表达式匹配
-
pcre官网
-
PCRE接口pcre_fullinfo混合子模式调用结果
-
正则表达式30分钟入门教程