nginx - 在 Nginx 配置( server_name ) 中,正则表达式

  显示原文与译文双语对照的内容

我尝试为 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和英镑

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


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

为什么不工作?

感谢你提前致谢。

时间: 作者:

我在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);

...