如何在http://domain.com/post-type/category/category-name/page/2中找到类别名称,页码

时间:2013-11-04 12:34:51

标签: php regex wordpress

我的网址格式如下:

http://domain.com/post-type/category/category-name/page/2

无论如何都需要仅提取category-name

例如,在网址:

http://domain.com/projects/category/print/page/2

我只想要这个词

print

我正在尝试这个正则表达式:category\/(.+)\/(?(?=(?:category)\/)^|(.+))\/(.+)\/?$通过一些搜索拼凑在一起,但我真的对Regex感到困惑。

http://regex101.com/r/uG8pV8

注意

我在PHP中执行此操作(我认为是正则表达式,对吗?)。目前,Wordpress代码如此:$newrules['projects/category/(.*/?)$'] = 'index.php?post_type=project&project_cat=$matches[1]';似乎在projects/category/

之后占据整个网址

修改

是否也可以获取页码?

例如:http://domain.com/post-type/category/category-name/page/2

是否可以仅将category-name2作为单独匹配?

2 个答案:

答案 0 :(得分:2)

你必须使用一个不合理的匹配器.+? ?后面的.+表示 ungready ,并且在找到第一个版本后会停止匹配。在这种情况下,这是/.+

/category\/(.+?)\/.+/

答案 1 :(得分:0)

你可以试试这个正则表达式。

(?<=http:\/\/domain\.com\/projects\/category\/)([^\/]+)