zoukankan      html  css  js  c++  java
  • Nginx的Rewrite正则表达式,匹配非某单词

    Nginx的Rewrite正则表达式,匹配非某单词
    
     
    由于要rewrite一个地址从
    /mag/xx/xxx/ -> /m/xxx
    但原先 /mag/xx/more/ 要保留
    这就得写一个比较奇特的正则了,尝试了比较多的写法也没成功
    
    最先想的是:
    
    location ~* ^/mag/[^/]+/[^(more)]+/ {
    rewrite ^/mag/[^/]+/(.*) /m/$1 permanent;
    }
    
    []的写法并不凑效,里面是匹配单个字符的,这样无效,匹配不了
    
    还是小范同学不错,研究的深入,提供了非某单词的写法 (?!more)
    
    location ~* ^/mag/[^/]+/(?!more)([^/]+)/ {
    rewrite ^/mag/[^/]+/(.*) /m/$1 permanent;
    }
    
    这个写法勉强可以应付了,后面的匹配单元虽说还不完美,但也能够对付我的所有需求内容了。
    有需要的可以参考此写法。
    
    常用分组语法
    
    捕获
    (exp) 匹配exp,并捕获文本到自动命名的组里
    (?exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?’name’exp)
    (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
    
    零宽断言
    (?=exp) 匹配exp前面的位置
    (?<=exp) 匹配exp后面的位置
    (?!exp) 匹配后面跟的不是exp的位置
    (? …
     
  • 相关阅读:
    灌水专栏
    工程控制基础相关指标识图与记忆
    材料力学典型习题
    材料力学大学慕课汇总
    机械工程控制基础线性系统时域分析
    ccaa
    在电脑上使用听写,以说话代替打字
    李さんは森さんより若いです
    机械制造工艺基础
    大学慕课材料力学总结
  • 原文地址:https://www.cnblogs.com/archoncap/p/5381443.html
Copyright © 2011-2022 走看看