Аналог модификатора g для map

rba nginx-forum на forum.nginx.org
Ср Июл 27 07:37:33 UTC 2016


Есть ли возможность сделать c помощью map или еще каких-нибудь директив
преобразование типа
echo "a1=1&a2=2&a3=3" | sed 's/&/ AND /g'
при том что кол-во переменных неизвество

Я нашел тему 2014 где Maxim Dounin что it's not suppot
http://nginx.2469901.n2.nabble.com/Use-g-global-regex-modifier-in-map-td7590975.html
но вдруг за два года появилось изящное решение?

Вариант с perl модулем не устрайвает.

У меня конечно возникла мысль накопипастить что-то типа
map $args $filters_stady2 {
   default "args";
   "~*(?<tmp0>[a-zA-Z0-9_+-=,.]+)&(?<tmp1>[a-zA-Z0-9_+-=,.&]+)"    "$tmp0
AND $tmp1";
}

map $filters_stady2 $filters_stady3 {
   default "$filters_stady2";
   "~*(?<tmp0>[a-zA-Z0-9_+-=,. ]+)&(?<tmp1>[a-zA-Z0-9_+-=,.&]+)"    "$tmp0
AND $tmp1";
}

map $filters_stady3 $filters_stady4 {
   default "$filters_stady3";
   "~*(?<tmp0>[a-zA-Z0-9_+-=,. ]+)&(?<tmp1>[a-zA-Z0-9_+-=,.&]+)"    "$tmp0
AND $tmp1";
}
...
до предполагаемого максимального кол-ва переменных
а потом использовать $filters_stadyПоследний, но
Может быть есть возможность написать это компактней?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,268536,268536#msg-268536



Подробная информация о списке рассылки nginx-ru