如何使用preg_match_all()匹配两个已知点之间的子串?

时间:2017-07-14 15:11:33

标签: php filepath preg-match-all regex-negation character-class

我知道在PHP中使用explode()函数很容易在两个斜杠之间提取字符串。如果字符串如下:

localhost/used_cars/search/mk_honda/md_city/mk_toyota

我想在mk_之后提取字符串,直到像hondatoyota这样的斜杠。

这是我的代码:

$input = 'localhost/used_cars/search/mk_honda/md_city/mk_toyota';
preg_match('#/mk_([^/]*)/#', $input, $matches);
echo $matches[1];

代码只是从honda中提取mk_honda,但为什么不从toyota获取mk_toyota

1 个答案:

答案 0 :(得分:1)

首先,您没有使用preg_match_all,第二件事/结束时没有toyota所以它不匹配,删除它:

preg_match_all('#/mk_([^/]*)#', $input, $matches);
print_r($matches[1]);