Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 正则表达式提取并格式化部分URL_Php_Regex - Fatal编程技术网

Php 正则表达式提取并格式化部分URL

Php 正则表达式提取并格式化部分URL,php,regex,Php,Regex,我需要提取以下URL的p5925和c98: http://www.example.com/mens-shoes/mens-boots/p5925/c98/colour/Black 我想要的格式是: p:5925,c:98 我现在得到的正则表达式是([^pc]\d+),它只匹配数字,但不确定如何以我想要的格式获得它 我使用了代码preg_match('/([^pc]\d+/”,$ls_url,$la_matches)将其拆分。您需要使用preg\u match\u all preg_match_a

我需要提取以下URL的
p5925
c98

http://www.example.com/mens-shoes/mens-boots/p5925/c98/colour/Black

我想要的格式是:

p:5925
c:98

我现在得到的正则表达式是
([^pc]\d+)
,它只匹配数字,但不确定如何以我想要的格式获得它


我使用了代码
preg_match('/([^pc]\d+/”,$ls_url,$la_matches)
将其拆分。

您需要使用
preg\u match\u all

preg_match_all('~(?<=/)([pc])(\d+)(?=/)~', $ls_url, $la_matches);

谢谢,很好用。如果我必须将/color/Black位也作为数组,我将如何更改正则表达式?
array([0]=>array([0]=>p5925[1]=>c98[2]=>color/Black)[1]=>array([0]=>p[1]=>c[2]=>array([0]=>5925[1]=>98[2]=>)[3]=>数组([0]=>[1]=>[2]=>颜色/黑色))
谢谢,它能像p和c一样被分割成值吗?现在它的颜色/黑色。所以第二个数组将是p,c,颜色,第三个数组将是5925,98,黑色这很完美(拇指支持)parse_url不会为我提取路径部分。我必须在parse_url之后进行regex搜索。谢谢,但是我如何从
p5925
中获取
5925
preg_match_all('~\b([pc])(\d+)\b~', $ls_url, $la_matches);