Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在中查找类别名称、页码http://domain.com/post-type/category/category-name/page/2_Php_Regex_Wordpress - Fatal编程技术网

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

Php 如何在中查找类别名称、页码http://domain.com/post-type/category/category-name/page/2,php,regex,wordpress,Php,Regex,Wordpress,我有一个如下格式的URL: http://domain.com/post-type/category/category-name/page/2 并且只需要提取类别名称,不管接下来发生什么 例如,在url中: http://domain.com/projects/category/print/page/2 我只想要一个字 打印 我正在尝试这个正则表达式:category\/(.+)\/(?(?=(?:category)\/)^ |(.+)\/(.+)\/?$通过一些搜索拼凑在一起,但我真的被正则表

我有一个如下格式的URL:

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

并且只需要提取
类别名称
,不管接下来发生什么

例如,在url中:

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

我只想要一个字

打印

我正在尝试这个正则表达式:
category\/(.+)\/(?(?=(?:category)\/)^ |(.+)\/(.+)\/?$
通过一些搜索拼凑在一起,但我真的被正则表达式搞糊涂了

注意

我是用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


是否可以仅将
类别名称
2
作为单独的匹配项?

您必须使用一个未冻结的匹配器
+?
后面的
表示未就绪,它在找到自己后面的第一个模式后停止匹配。在本例中,这是
/.+

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

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

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

(?啊,这很好。很抱歉扩展问题,但我现在似乎对重写规则有问题,我以前的重写规则是
[projects/category/(.*/)$]=>index.php?post_type=project&project_cat=$matches[1]
-有没有办法在PHP重写中实现这个新的工作正则表达式?请给我具体的
from
to
URL来回答您的问题。谢谢-
http://domain.com/projects/category/print/page/2
http://domain.com/index.php?post_type=project&project_cat=$matches[1]&paged=$matches[2]
这个
/category\/(.+)\/page\/(\d+)$/
怎么样?由于某种原因,它似乎不起作用,是因为斜杠转义吗?当前的规则是:
项目/category/(.*/)$
我想这是我编辑的答案,经过一些修改:
项目/category\/(.+?)\/page\/(.+?)$
但由于某种原因,当我将其设置为
$rules['projects/category/(.+?)/page/(.+?)$”]时,在Wordpress/PHP中这不起作用。