nginx配置中的Regexp(server_name)

时间:2014-10-21 03:11:39

标签: regex nginx

我尝试为nginx配置编写regexp。 这是网址示例:

api.drive.pss.np.sweetdev.com
api.google.pss.np.sweetdev.com
api.mail.pss.np.sweetdev.com
api.google.alex.np.sweetdev.com
api.mail.alex.np.sweet-dev.com

我想将第二和第三部分提取到变量 site_name user_name

这是我的尝试(仅适用于第二部分):

server_name ~^api\.([a-z]+)\.pss\.np\.sweetdev\.com$;
server_name ~^api\.(?<site_name>\w+)\.pss\.np\.sweetdev\.com$;

为什么它不起作用?

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

我在perl中根据你的输入使用它来尝试这个。

#!的/ usr / bin中/ perl的

use strict;
my $server_name = qq(api.drive.pss.np.sweetdev.com
api.google.pss.np.sweetdev.com
api.mail.pss.np.sweetdev.com
api.google.alex.np.sweetdev.com
api.mail.alex.np.sweet-dev.com);


my (@site_name, @user_name) = $server_name =~ m{api\.([^\.]+)\.([^\.]+)\.np\.sweet-?dev\.com}ig;

print join("\n",@site_name,@user_name);