14、nginx的正则表达式名称-(server_name为正则表达式)
官网: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为正则表达式)相关推荐
- java正则表达式 过滤特殊字符的正则表达式
在网上找了好久也没找到个合适的正则表达式以过滤特殊字符:自己学习了下,写了两个,实现要求. Java代码 // 过滤特殊字符 public static String StringFilter(Str ...
- mysql正则表达式配置_G. MySQL正则表达式
附录G:MySQL正则表达式 正则表达式是为复杂搜索指定模式的强大方式. MySQL采用Henry Spencer的正则表达式实施,其目标是符合POSIX 1003.2.请参见附录C:感谢.MySQL ...
- 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容
文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...
- php中ip地址的正则表达式,PHP_IP地址正则表达式匹配方法,正则表达式(Regular Expression, - phpStudy...
IP地址正则表达式匹配方法 正则表达式(Regular Expression,在代码中常简写为regex.regexp或RE)是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个 ...
- 【正则表达式】常用的正则表达式(数字,汉字,字符串,金额等的正则表达式)
❤ 写在前面 如果觉得对你有帮助的话,点个小❤❤ 吧,你的支持是对我最大的鼓励~ 欢迎关注我的公众号[有更多的前端教程] 或者来看 我的个人网站 1.校验数字 数字 ^[0-9]*$ Z位的数字 ^\ ...
- 正则表达式中grep,sed的用法(包括基本的正则表达式和扩展的正则表达式)
一 正则表达式 Basic REGEXP:基本正则表达式 Extended REGEXP:扩展正则表达式 (正则表达式是使得计算机变成智能化的重要途径) 1.1 基本正则表达式 . : 表示匹配任 ...
- 【计算理论】正则语言 ( 正则表达式原子定义 | 正则表达式递归定义 | 正则表达式语言原子定义 | 正则表达式语言结构归纳 | 正则表达式语言示例 | 根据正则表达式构造自动机 )
文章目录 一.正则表达式 定义 二. 正则表达式语言 原子定义 三.正则表达式语言 结构归纳定义 四.正则表达式语言 示例 五.空集 ∅\varnothing∅ 与 空字符 ε\varepsilonε ...
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...
- python正则表达式修饰符_python正则表达式,看完这篇文章就够了...
今天讲什么? 今天以为大学同学微信聊,说最近在看我的公众号,她是国企汽车制造业的,但也要用python进行数据分析...之前看了往期的python字符串操作内容,里面说到了正则表达式,想学习一下... ...
最新文章
- sqlmap 跑access_sqlmap注入Access
- ORACLE---数据库巡检
- LVS工作总结之原理篇–DR模式
- IDEA Java Web 推送Tomcat
- Linux+Oracle+12c+RAC+安装配置详细-GI安装
- 2018ACM/ICPC亚洲区域赛(焦作)F. Honeycomb
- 从无到有:阿里巴巴中国站手机客户端项目设计
- java异常处理封装_Java统一异常处理(配置文件集中化定义)
- kite插件~快速提高代码速度
- 一个简单的HTML网页 、个人主页网页设计(HTML+CSS)
- 初级办公计算机,初级(计算机办公软件应用)教案
- 文件批量提取工具,从大量文件中批量提取指定文件的实现思路,文件批量复制
- Learning Sites
- 护士人文修养测试题答案
- error C251: illegal octal digit 错误提示
- python 使用微信远程控制电脑
- 六、MFC 程序的生死因果 (学习笔记)
- linux消息通信无法接收,求助!Linux基于UDP通信失败,server接收不到消息???...
- 自我刷新2.5次后工资涨了1.5倍!
- MySql数据库简介(一)
热门文章
- 两台电脑之间共享文件
- 如何裁剪动图的尺寸?怎样快速裁剪gif动图?
- 终于在博客园安了个新家
- Docker 网络详解
- response_json是什么类型数据_零基础学VBA编程第5课:什么是数据类型?
- 独家解读:魅族数据平台的设计哲学和核心架构
- 安卓手机测评_安卓流畅榜第一的游戏手机,骁龙865+144Hz+高效散热,红魔5S测评...
- 我的世界服务器怎么修改皮肤,我的世界怎么换皮肤 我的世界皮肤更换使用教程...
- Python重要的库
- sublime安装json格式化插件