perl正则:
\d — 匹配数字(字符组合[0-9])。
.\D — 匹配非数(字符组合[^0-9])。
.\w — 匹配单词字符(字符组合[a-zA-Z0-9_])(这里下划线算作一个单词字符)。
.\W — 匹配非单词字符(字符组合[^a-zA-Z0-9_])。
.\s — 匹配空格字符(字符组合[\t\n])(制表符、换行符、空格)。
.\S — 匹配非空格字符(字符组合[\t\n])。
.- 匹配任意字符(在某些情况下)换行符除外(字符组合[^\n])、当输入m"(.*)"S时匹配任意字符。参见本章后面的修饰符。
.$- 尽管它实际上并不是一个通配符(它不匹配任何具体字符).但它是广泛使用的特殊字符;如果将其放在正则表达式的尾部则它匹配“行尾”。零宽度断言。
.^- 尽管实际上不是一个通配符,但如果它位于正则表达式的开头则它是匹配“行首”的特殊字符。零宽度断言。
.\b,\B- 与$和^相同;不匹配字符,但匹配单词边界(\b)或匹配无单周边(\B)。零宽度断言。
PerI的六个多重匹配运算符是:
·*——匹配零次,一次或多次。 ·?——匹配一次或者多次。
·?——匹配零次或者一次。
·{X}——匹配‘X’次。
·{X,}——匹配‘X’或者更多次。
·{X,Y}——匹配‘X’到‘Y’次。
nginx:
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。