Php 正则表达式提取并格式化部分URL
我需要提取以下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
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);