加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式与可选组

发布时间:2020-12-14 05:50:15 所属栏目:百科 来源:网络整理
导读:我正在寻找一个正则表达式来匹配以下4个案例(抓住id,所以我可以重写网址) http://localhost/gallery/test-name/123456http://localhost/gallery/test-name/123456/http://localhost/gallery/test-name/123456/video-name/159http://localhost/gallery/test-n
我正在寻找一个正则表达式来匹配以下4个案例(抓住id,所以我可以重写网址)

http://localhost/gallery/test-name/123456
http://localhost/gallery/test-name/123456/
http://localhost/gallery/test-name/123456/video-name/159
http://localhost/gallery/test-name/123456/video-name/159/

目前正则表达式在下面,但它并没有在所有情况下正确抓取ID.那里的任何专家都知道我做错了什么?

^(.*)/gallery/(.*)/([0-9]{1,15})(/)?((.*)/([0-9]{1,15})(/)?)?

解决方法

.*(你第二次使用它)是贪婪的.因此它会消耗所有内容直到您的最后一个ID.这就是为什么第一个ID会丢失,如果你有两个.反而让它变得不合适:

^(.*)/gallery/(.*?)/([0-9]{1,15})(/)?((.*?)/([0-9]{1,15})(/)?)?

我还加了一个?到最后.*如果你想为此添加更多参数.但是,无论如何,简单地拆分字符串/可能会简单得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读