官网:Server names

翻译部分: Regular expressions names

开始!


The regular expressions used by nginx are compatible with those used by the Perl programming language (PCRE).

nginx用的正则表达式和那些被PCRE用的正则表达式是可共用的。


To use a regular expression, the server name must start with the tilde character:

为了用正则表达式,server_name的参数必须以~开头。

server_name  ~^www\d+\.example\.net$;

可以看到,~和参数之间不需要加空格。


otherwise it will be treated as an exact name, or if the expression contains an asterisk, as a wildcard name (and most likely as an invalid one).

否则它将会被视为确切的名称,或者如果表达式包含星号,它会被视为通配符名称。


Do not forget to set “^” and “$” anchors.

不要忘记设置^和$锚点。


They are not required syntactically, but logically.

它们不是语法上需要的,而是语法上需要的。


Also note that domain name dots should be escaped with a backslash.

同时也要记得域名点要用反斜杠转义 ,例如: \.


A regular expression containing the characters “{” and “}” should be quoted:

包含{和}的正则表达式应该被""包围,如下:

server_name  "~^(?<name>\w\d{1,3}+)\.example\.net$";

otherwise nginx will fail to start and display the error message:

否则,nginx会启动失败并展示错误信息,错误信息如下:

directive "server_name" is not terminated by ";" in ...

A named regular expression capture can be used later as a variable:

在正则表达式中?<>包围的名字(如下的domain)可以稍后在后面作为一个变量来使用。

server {server_name   ~^(www\.)?(?<domain>.+)$;location / {root   /sites/$domain;}
}

The PCRE library supports named captures using the following syntax:

PCRE库支持使用以下语法的命名捕获:

?<name>

Perl 5.10 compatible syntax, supported since PCRE-7.0

Perl5.10兼容语法,从PCRE-7.0开始支持。

?'name'

Perl 5.10 compatible syntax, supported since PCRE-7.0

Perl5.10兼容语法,从PCRE-7.0开始支持。

?P<name>

Python compatible syntax, supported since PCRE-4.0

Python兼容语法,从PCRE-4.0开始支持。


If nginx fails to start and displays the error message:

如果nginx启动失败并展示一下错误信息:

pcre_compile() failed: unrecognized character after (?< in ... 

this means that the PCRE library is old and the syntax “?P<name>” should be tried instead.

这意味着PCRE库是旧版的,应该用?P<name>试试。


The captures can also be used in digital form:

捕获也可以用数字形式使用:

server {server_name   ~^(www\.)?(.+)$;location / {root   /sites/$2;}
}

$2表示正则表达式匹配到的第2个参数 ,

如果匹配到www.example.com,那$2就是example.com。

~^(www\.)?(.+)$解释:

1.~表示这是一个正则表达式

2.^表示以后面匹配的内容开头

3.(www\.)表示匹配www.,结合^就是匹配以www.开头的字符串

4.?表示前面的子表达式匹配最多1次,结合上面是:只能匹配www.0次或1次

5.(.+)表示匹配单个字符至少1次,.表示匹配除换行符 \n 之外的任何单字符,+表示匹配1次或多次

6.$表示以前面匹配的字符串结尾


However, such usage should be limited to simple cases (like the above), since the digital references can easily be overwritten.

然而,这种用法应该只限于简单的情况,因为数字引用很容易被覆盖。

14、nginx的正则表达式名称-(server_name为正则表达式)相关推荐

  1. java正则表达式 过滤特殊字符的正则表达式

    在网上找了好久也没找到个合适的正则表达式以过滤特殊字符:自己学习了下,写了两个,实现要求. Java代码 // 过滤特殊字符 public static String StringFilter(Str ...

  2. mysql正则表达式配置_G. MySQL正则表达式

    附录G:MySQL正则表达式 正则表达式是为复杂搜索指定模式的强大方式. MySQL采用Henry Spencer的正则表达式实施,其目标是符合POSIX 1003.2.请参见附录C:感谢.MySQL ...

  3. 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容

    文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...

  4. php中ip地址的正则表达式,PHP_IP地址正则表达式匹配方法,正则表达式(Regular Expression, - phpStudy...

    IP地址正则表达式匹配方法 正则表达式(Regular Expression,在代码中常简写为regex.regexp或RE)是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个 ...

  5. 【正则表达式】常用的正则表达式(数字,汉字,字符串,金额等的正则表达式)

    ❤ 写在前面 如果觉得对你有帮助的话,点个小❤❤ 吧,你的支持是对我最大的鼓励~ 欢迎关注我的公众号[有更多的前端教程] 或者来看 我的个人网站 1.校验数字 数字 ^[0-9]*$ Z位的数字 ^\ ...

  6. 正则表达式中grep,sed的用法(包括基本的正则表达式和扩展的正则表达式)

    一 正则表达式   Basic REGEXP:基本正则表达式 Extended REGEXP:扩展正则表达式 (正则表达式是使得计算机变成智能化的重要途径) 1.1 基本正则表达式 . : 表示匹配任 ...

  7. 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )

    文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...

  8. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍

    java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...

  9. python正则表达式修饰符_python正则表达式,看完这篇文章就够了...

    今天讲什么? 今天以为大学同学微信聊,说最近在看我的公众号,她是国企汽车制造业的,但也要用python进行数据分析...之前看了往期的python字符串操作内容,里面说到了正则表达式,想学习一下... ...

最新文章

  1. sqlmap 跑access_sqlmap注入Access
  2. ORACLE---数据库巡检
  3. LVS工作总结之原理篇–DR模式
  4. IDEA Java Web 推送Tomcat
  5. Linux+Oracle+12c+RAC+安装配置详细-GI安装
  6. 2018ACM/ICPC亚洲区域赛(焦作)F. Honeycomb
  7. 从无到有:阿里巴巴中国站手机客户端项目设计
  8. java异常处理封装_Java统一异常处理(配置文件集中化定义)
  9. kite插件~快速提高代码速度
  10. 一个简单的HTML网页 、个人主页网页设计(HTML+CSS)
  11. 初级办公计算机,初级(计算机办公软件应用)教案
  12. 文件批量提取工具,从大量文件中批量提取指定文件的实现思路,文件批量复制
  13. Learning Sites
  14. 护士人文修养测试题答案
  15. error C251: illegal octal digit 错误提示
  16. python 使用微信远程控制电脑
  17. 六、MFC 程序的生死因果 (学习笔记)
  18. linux消息通信无法接收,求助!Linux基于UDP通信失败,server接收不到消息???...
  19. 自我刷新2.5次后工资涨了1.5倍!
  20. MySql数据库简介(一)

热门文章

  1. 两台电脑之间共享文件
  2. 如何裁剪动图的尺寸?怎样快速裁剪gif动图?
  3. 终于在博客园安了个新家
  4. Docker 网络详解
  5. response_json是什么类型数据_零基础学VBA编程第5课:什么是数据类型?
  6. 独家解读:魅族数据平台的设计哲学和核心架构
  7. 安卓手机测评_安卓流畅榜第一的游戏手机,骁龙865+144Hz+高效散热,红魔5S测评...
  8. 我的世界服务器怎么修改皮肤,我的世界怎么换皮肤 我的世界皮肤更换使用教程...
  9. Python重要的库
  10. sublime安装json格式化插件