正则

nginx正则配置访问目录

那年仲夏 提交于 2019-12-06 16:46:24
语法规则: location [=|~|~*|^~] /uri/ { … } 其中location匹配的指是path部分的值,不包括主机名(域名、端口号等)、查询字符串(第一个问号后面的)等其他部分 = 开头 表示精确 匹配 ^~ 开头表示uri以某个常规字符串开头(不使用正则匹配),理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa, 可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 开头表示区分大小写的 正则匹配(后面跟着正则表达式) ~* 开头表示不区分大小写的 正则匹配(后面跟着正则表达式) 示例一:以下表示在访问 http://127.0.0.1:8000/dsad_1231/publish/ dsdsd/dsad.html时,就再访问本地8000端口上的 server/publish / dsdsd/dsad.html的地址; location ~ ^(/([0-9a-zA-Z\_])*)/publish/(.*) { proxy_pass http://127.0.0.1:8000/server/publish/$3; } 示例二: 以下配置表示访问 http://127.0.0.1/12eee_345/test/HQ.png 时,就去访问d盘的目录下“(.*)”这个目录的下的文件 location ~ ^

js之数据类型(对象类型——构造器对象——正则)

谁都会走 提交于 2019-12-06 15:28:11
    正则(regular expression)描述了一种字符串的匹配式。一般应用在一些方法中,用一些特殊的符号去代表一些特定的内容,对字符串中的信息实现查找,替换,和提取的操作。js中的正则表达式用RegExp对象表示,有两种写法:一种是字面量写法,一种是构造函数写法。   一、定义正则表达式       字面量创建方式      /正则表达式/[修饰符可写可不写]         实例创建方式       new RegExp(字符串,[修饰符])     二者的区别:直接量定义不能进行字符串拼接,实例创建方式可以;字面量创建方式特殊含义的字符不需要转义,实例创建方式需要转义。     修饰符(放在第二个斜杠的后面)        g: 代表全局(global)匹配,模式将用用所有字符串,并非在发现第一个匹配项时就停止        i: 不区分大小写,在确定匹配项的时候忽略大小写        m: 多行模式,在到达一行文本末尾还会继续查找下一行中是否存在与模式匹配的项 <script> str = 'davina'; var re = /i/; var re1 = new RegExp('davina'); str1 = 'davi/na'; var re2 = '/i\//'; //注意:正则在匹配/时会有问题,需要转义 console.log(re, re1,

nginx中location的顺序(优先级)及rewrite规则写法

你。 提交于 2019-12-06 14:20:43
一、location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 [ configuration CC ] } location ^~ /images/ { # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 结尾的请求 # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为

编写简单i18n库

為{幸葍}努か 提交于 2019-12-06 12:36:14
i18n是什么?i18n(其来源是英文单词internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。 前言 第一次接触多语言是用野生javascript写H5应用的时候,那时候写了一大堆的累赘重复的代码用来切换页面的多语言,之后自然发现很难维护啦。至于到第二次开发另一个H5应用的时候,用了vue做了一个SPA。多语言自然用了官方的vue-i18n。 因为两次的开发维护体验产生了对比,使我产生了不小的兴趣:假设一个简单的页面需要多语言。当然用不着vue,但是也不想用jquery怎么办?如果要开发类似的i18n库,我该如何实现? 于是花了三天(应该也是两个月前了)写了这个工具库 n-i18n ,以后写多语言页面的工作量就可以减少啦~ 分析 简单分析后,发现可以参考vue-i18n的配置。但是由于没有实现也没有必要实现模板引擎。因此其实可以将配置参数放在DOM节点的 dataset ( data-i18n )属性上。遍历读取有该dataset的节点。解析里面配置的参数后,就可以读取该节点应该绑定多语言里的哪个文本,配置什么参数和数据。 在实际开发中。多语言有时候往往不止切换单纯的文本。有时候可能是切换HTML,甚至切换图片,样式(比如 background-image )的情况出现。因此渲染模式也被我分为了 $t; $h; $m; $c 四种模式

Shell 中常见的日志统计方法

爱⌒轻易说出口 提交于 2019-12-06 10:00:08
前面我发布过" Hadoop兮,杀鸡别用牛刀,python+shell实现一般日志文件的查询、统计 " , 需要结合python, 可能还是有一定的门槛, 现将shell部分剥离出来. 举例一些最基本的日志统计方法. (1)查看文件 more crawler.log 查看crawler.log日志 tail -n 100 crawler.log 查看crawler.log的最后100行 (2)匹配统计 cat *.log | grep "ERROR" |wc -l 统计在*.log中出现ERROR的行数, 去掉最后一个管道(即: cat *.log | grep "ERROR" )可以查看具体匹配的是哪些行, 大文件不建议这样做. (3)正则表达式匹配统计 cat *.log | grep ".*Append \(http:\/\/.*\?\) to .*" 查看*.log中匹配正则表达式 .*Append (http:\/\/.*\?) to .* 的行, 为什么括号前要加斜杠呢? 这是shell中正则表达式比较特殊的地方, 括号还有其他个别符号前需要加斜杠. (4)将匹配正则表达式的内容抽取出来, 排重, 再统计. 比如说一个爬虫日志文件中, 我要统计被抓取网址的数量, 统计的网址不能重复. 已知日志的格式为" Append http://网址 ......." ,

PHP 基础篇

烈酒焚心 提交于 2019-12-06 08:41:36
一、PCRE 正则语法 下面是 PHP 的 PCRE 正则语法(模式语法)相关文档,详情请查阅相关链接: 简介 分隔符 元字符 转义序列(反斜线) Unicode字符属性 锚 句点 字符类(方括号) 可选路径(|) 内部选项设置 子组(子模式) 重复/量词 后向引用 断言 一次性子组 条件子组 注释 递归模式 性能 二、PCRE 模式修饰符 下面列出了当前可用的 PCRE 修饰符,详情请看 官方文档 : i (PCRE_CASELESS) m (PCRE_MULTILINE) s (PCRE_DOTALL) x (PCRE_EXTENDED) e (PREG_REPLACE_EVAL) A (PCRE_ANCHORED) D (PCRE_DOLLAR_ENDONLY) S U (PCRE_UNGREEDY) X (PCRE_EXTRA) J (PCRE_INFO_JCHANGED) u (PCRE_UTF8) 三、PCRE 函数 下面是 PHP 的 PCRE 函数相关文档,详情请查阅相关链接: preg_filter — 执行一个正则表达式搜索和替换 preg_grep — 返回匹配模式的数组条目 preg_last_error — 返回最后一个PCRE正则执行产生的错误代码 preg_match_all — 执行一个全局正则表达式匹配 preg_match — 执行匹配正则表达式

js的正则表达式

家住魔仙堡 提交于 2019-12-06 06:44:25
1、正则定义 正则表达式:js中用来匹配判定字符串是否合法的工具 有两种定义方式: 1直接用//定义:var reg1 = /[0-9a-zA-Z]/i; 2用RegExp方式定义:var reg2 = new RegExp('[0-9a-zA-z]', 'i'); 其中[0-9a-zA-Z]为字符串匹配规则,i为修饰符。 2、正则符号 ^:以...开头 ^\d:以数字开头 $:以...结尾 \d$:以数字结尾 ?:表示匹配0个或1个 +:表示匹配至少1个 *:表示匹配任意个 {x}:表示匹配x个 {x,y}:表示匹配x到y个,最少x个,最多y个 {x,}:表示匹配至少x个起 3、匹配规则 [0-9]:查找0~9之间的数字 [0-9a-z]:查找0-9或a-z之间的字符 .:表示匹配任何一个字符(包括0) \d:表示匹配数字 \w:匹配一个字母或数字 i,g,m:修饰符,i:忽视大小写,g:全局匹配,m:多行匹配 4、正则可用于那些方法 test():Reg.test(String),返回true或false表示是否匹配 match():String.match(Reg),返回一个或多个匹配的字符串 split(Reg):String.split(Reg),消除匹配的分割符 replace():String.replace(Reg,'newString'),替换匹配到的字符串

正则匹配 空格 换行

北城余情 提交于 2019-12-06 03:32:53
let str = ` 单位名称:无锡瀚伟彦化工科技有限公司 税号:91320206MA1WGXCCXA 地址:无锡市惠山万达商业广场137-2109 电话:0510-8359 4458‬ 开户行:农行无锡惠山支行 帐号:10654501040020717 ` 正则 str.match(/[^\x00-\xff]+(:|:)+([^\x00-\xff]|\w|-)+(\s|[\r\n])*/g); [^\x00-\xff]匹配汉字 ([^\x00-\xff]|\w|-) 匹配汉字 字母 数字 - 下划线_ (\s|[\r\n]) 匹配空格 换行 回车符 来源: https://www.cnblogs.com/hzx-5/p/11960590.html

读懂正则表达式就这样简单

本秂侑毒 提交于 2019-12-06 02:15:56
一 前言   对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云。 其实只是对正则不了解而以,了解了你就会发现,原来就这样啊正则所用的相关字符其实不多,也不难记,更不难懂,唯一难的就是组合起来之后,可读性比较差,而且不容易理解,本文旨在让大家对正则有一个基本的了解,能看得懂简单的正则表达式,写得出简单的正则表达式,用以满足日常开发中的需求即可。 0\d{2}-\d{8}|0\d{3}-\d{7} 先来一段正则,如果你对正则不了解,是不是完全不知道这一串字符是什么意思?这不要紧文章会详细解释每个字符的含义的。 1.1 什么是正则表达式 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。 1.2 常用的正则匹配工具 在线匹配工具:   1 http://www.regexpal.com/ 2 http://rubular.com/ 正则匹配软件 McTracer 用过几个之后还是觉得这个是最好用的,支持将正则导成对应的语言如java C# js等还帮你转义了,Copy直接用就行了很方便,另外支持把正则表达式用法解释,如哪一段是捕获分组,哪段是贪婪匹配等等,总之用起来 So Happy . 二 正则字符简单介绍 2

JS正则验证数字格式2

蓝咒 提交于 2019-12-06 02:04:31
之前的博文:JS验证正数字,正则的一种正数规则1,中isNaN可以判断内容是否为数字,但是这种判断出来的数字,有的不是数字的标准格式。那篇博文中尝试了下用正则验证,但是忘了一种情况,小数点后无数字,小数点后跟着的内容应该是+一个或多个,而不是*零个一个或多个,小数点后无数字不符合要求。 而且测试的几种情况把0忘了,0后面紧跟着小数点,但是还有单独的0也算是数字。 写了几个数字组成应该匹配到的,和不该匹配到的情况,并根据测试情况逐步修改。 个人目前想到的情况: 应该匹配到的情况: 0(一位0) 5(一位数 7068404(一位或多位正整数) -23403(负数开头的正整数) 0.3504(零和点开头的小数) 405.3803(不是零开头的小数) 不该匹配到的情况 09456(零开头的第二位不是点的数) -0345(负号后面紧跟着零,零的第二位不是点的数) 3403.(点后面没有数字跟着) a345.46d(前后有非数字) 0..456(有多个小数点) -0(负的单独的0似乎也没有意义) 修改版本1: 如图,是修改后的表达式,负号可以有零个或一个,后面的分了两种情况: 1.以非零开头,1-9开头,后面可跟着任意数量数字,然后跟着一个点(零个或一个),后面再跟着任意数字。 匹配非零开头的整数和小数 2.以零开头,后面紧跟着小数点(一个或零个),后面跟着任意数字(一个或多个,不能没有)。