我想知道是否可以删除nginx配置文件上变量的前导零。
我有一个定义如下的变量:
set $definitive_var $var1$var2$var3$var4;
还有一个获取$ var1,$ var2,$ var3和$ var4值的映射:
map $arg_a $var1 {
8JaYh7s733 0;
EMFnZiHXp4 1;
GWpn69jI0Z 2;
3eLtv4qOWj 3;
I7k80VJ1iH 4;
b2y36c342K 5;
qGi45WCfJA 6;
90y6i5H71b 7;
MQ02jOzoay 8;
curR6p449h 9;}
我的问题是:
如果变量$ definitive_var具有一个或多个前导零,我该如何删除它们?
例如,转换为:
0076
收件人:
76
答案 0 :(得分:0)
使用此:
map $def_var $definitive_var {
~^0*(\d*)$ $1;
}
...
set $def_var $var1$var2$var3$var4;
...
# use $defnitive_var here, it will be automatically calculated from $def_var
更新
如果变量只能由零组成,则为防止将'00000'
映射到''
,请将正则表达式更改为~^0*(\d+)$
。
答案 1 :(得分:0)
我终于用一个if方法解决了它:
set $def_var $var1$var2$var3$var4;
if ( $def_var ~ "^0*(\d+)$" ) {
set $definitive_var $1;
}
感谢您的帮助!