【发布时间】:2019-07-26 06:22:09
【问题描述】:
URI 包含由三个连续逗号分隔的值。
例如/path?first,,,second,,,third,value,,,fourth
我想迭代这些值并打印如下字样:
first
second
third,value
fourth
此示例仅找到一个逗号,第三个值失败,因为它包含一个逗号。
for word in string.gmatch(ngx.var.request_uri, "[^,]+") do ngx.say(word) end
这也不起作用:
for word in string.gmatch(ngx.var.request_uri, "[^,]{3}") do ngx.say(word) end
在本例中,在一行中只使用三个连续逗号的正确正则表达式模式是什么?
【问题讨论】:
-
这个模式应该做你需要的:
",,,([^,]+)" -
使用该模式@Nifim时第一个值丢失
-
您可能无法使用单一模式进行一次和一次捕获。一个要求其后跟 3 个
,,另一个要求它们是领导。