1. rewrite ^/(news_\d)/(\d).html$ https://$host/?$1 permanent;

上面是我写的重写规则,先说$代表的是参数,所以一定是()包含的
( ) —用于匹配括号之间的内容,通过$1、$2调用

$1就是 news_\d

$2就是 \d

举个例子

https://www.zhubanxian.com/news_1/2.html
这里$1 就是news_1
$2就是2

正则

replace

stringObject.replace(regexp/substr,replacement)
replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

字符 替换文本
$1、$2、…、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$’ 位于匹配子串右侧的文本。
$$ 直接量符号。
  1. name = "Doe, John";
  2. name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
  3. 'John Doe'
  1. var str = '/pgk/api/pgk-abc'
  2. var reg = /^\/pgk(.*)$/
  3. str.replace(reg, "$1") // '/api/pgk-abc'
  4. var str = '/pgk/api/pgk-abc/n/abc'
  5. var reg = /^\/pgk\/api\/pgk-abc\/(.*)$/
  6. str.replace(reg, "$1") // 'n/abc'