正则表达式匹配可选的第三个 url 参数
Regex match optional third url parameter
我有以下 URL 结构:
http://sitename.com/subdir/category-name/subcategory-name/article
这里有一些例子 URLs:
http://127.0.0.1/ocko/works/videos/
http://127.0.0.1/ocko/texts/stuff/
http://127.0.0.1/ocko/works/teletubbies/oint/
http://127.0.0.1/ocko/works/teletubbies/oint/
类别可以是 works
或 texts
,article
是可选的。
这是我的正则表达式:
(works|texts)(\/.+)(?:(\/.+))\/
问题是它只匹配最后两个例子,比如第三个参数(article
)是强制性的,即使我在最后一部分写了(?:(\/.+))
。
我正在尝试将幕后内容重新路由为类似 :
http://127.0.0.1/ocko/category/works/videos/
我正在构建如下字符串:
http://127.0.0.1/ocko/category/$1$2$3
怎么样:
(works|texts)(\/.+?)(\/.+?)?\/
我有以下 URL 结构:
http://sitename.com/subdir/category-name/subcategory-name/article
这里有一些例子 URLs:
http://127.0.0.1/ocko/works/videos/
http://127.0.0.1/ocko/texts/stuff/
http://127.0.0.1/ocko/works/teletubbies/oint/
http://127.0.0.1/ocko/works/teletubbies/oint/
类别可以是 works
或 texts
,article
是可选的。
这是我的正则表达式:
(works|texts)(\/.+)(?:(\/.+))\/
问题是它只匹配最后两个例子,比如第三个参数(article
)是强制性的,即使我在最后一部分写了(?:(\/.+))
。
我正在尝试将幕后内容重新路由为类似 :
http://127.0.0.1/ocko/category/works/videos/
我正在构建如下字符串: http://127.0.0.1/ocko/category/$1$2$3
怎么样:
(works|texts)(\/.+?)(\/.+?)?\/