Nginx的正则表达式

bigBing / 2023-05-16 / 原文

  1.  
    =      表示精确的查找地址,如location = /它只会匹配uri为/的请求,如果请求为/index.html,将查找另外的location,而不会匹配这个,当然可以写两个location,location = /和location /,这样/index.html将匹配到后者,如果你的站点对/的请求量较大,可以使用这个方法来加快请求的响应速度。
  2.  
     
  3.  
    @      表示为一个location进行命名,即自定义一个location,这个location不能被外界所访问,只能用于Nginx产生的子请求,主要为error_page和try_files。
  4.  
     
  5.  
    ~      为区分大小写的匹配。
  6.  
    ~*     不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。
  7.  
    !~     不匹配的
  8.  
    !~*    不匹配的
  9.  
     
  10.  
    .     匹配除换行符以外的任意字符
  11.  
    \w     匹配字母或数字或下划线或汉字
  12.  
    \s     匹配任意的空白符
  13.  
    \d     匹配数字
  14.  
    \b     匹配单词的开始或结束
  15.  
    ^     匹配字符串的开始
  16.  
    $     匹配字符串的结束
  17.  
     
  18.  
    *     重复零次或更多次
  19.  
    +     重复一次或更多次
  20.  
    ?     重复零次或一次
  21.  
    {n}     重复n次
  22.  
    {n,}     重复n次或更多次
  23.  
    {n,m}     重复n到m次
  24.  
    *?     重复任意次,但尽可能少重复
  25.  
    +?     重复1次或更多次,但尽可能少重复
  26.  
    ??     重复0次或1次,但尽可能少重复
  27.  
    {n,m}?     重复n到m次,但尽可能少重复
  28.  
    {n,}?     重复n次以上,但尽可能少重复
  29.  
     
  30.  
    \W     匹配任意不是字母,数字,下划线,汉字的字符
  31.  
    \S     匹配任意不是空白符的字符
  32.  
    \D     匹配任意非数字的字符
  33.  
    \B     匹配不是单词开头或结束的位置
  34.  
    [^x]     匹配除了x以外的任意字符
  35.  
    [^aeiou]     匹配除了aeiou这几个字母以外的任意字符
  36.  
     
  37.  
    捕获     (exp)     匹配exp,并捕获文本到自动命名的组里
  38.  
    (?<name>exp)     匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
  39.  
    (?:exp)     匹配exp,不捕获匹配的文本,也不给此分组分配组号
  40.  
    零宽断言     (?=exp)     匹配exp前面的位置
  41.  
    (?<=exp)     匹配exp后面的位置
  42.  
    (?!exp)     匹配后面跟的不是exp的位置
  43.  
    (?<!exp)     匹配前面不是exp的位置
    https://blog.csdn.net/qq_41154871/article/details/90675877