老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
19,524

正则表达式中星号*、加号+和问号?的区别

分类 网站技术/村民张先生 发布于 2014-07-28 18:11
1

*代表{0,} +代表{1,} ?代表{0,1}

以Nginx网址重写(伪静态)中的正则为例:

rewrite ^/tag-([0-9]+)-1\.html$ /misc.php?mod=tag&id=$1 last;

其中 [0-9]+ 表示匹配0~9中的任意数字,并且至少1位。如果是*号,表示任意位数并且可以不存在。如果是?号,表示0~1位。

如果至少需要2位数,最多8位数,怎么写呢? ([0-9]{2,7}) 即可。但需要注意,Nginx伪静态规则中如果包含大括号,必须用英文引号将这段规则包起来,否则Nginx将无法启动。如下:

rewrite "^/tag-([0-9]{2,7})-1\.html$" /misc.php?mod=tag&id=$1 last;
欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/2014387.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


已经有 1 条群众意见

  1. qwe /2017-11-28 18:55

    回应

    #1

欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截