如何使用 preg_match_all() 匹配两个已知点之间的子串?
How to match substrings between two known points using preg_match_all()?
我知道使用 PHP 中的 explode()
函数很容易提取两个斜线之间的字符串。如果字符串是这样的怎么办:
localhost/used_cars/search/mk_honda/md_city/mk_toyota
我想在 mk_
之后提取字符串,直到斜线如:honda
和 toyota
.
这是我的代码:
$input = 'localhost/used_cars/search/mk_honda/md_city/mk_toyota';
preg_match('#/mk_([^/]*)/#', $input, $matches);
echo $matches[1];
该代码仅从 mk_honda
中提取 honda
,但为什么它没有从 mk_toyota
中提取 toyota
?
首先,您没有使用 preg_match_all
,其次,第二件事 toyota
末尾没有 /
,因此它不匹配,请将其删除:
preg_match_all('#/mk_([^/]*)#', $input, $matches);
print_r($matches[1]);
我知道使用 PHP 中的 explode()
函数很容易提取两个斜线之间的字符串。如果字符串是这样的怎么办:
localhost/used_cars/search/mk_honda/md_city/mk_toyota
我想在 mk_
之后提取字符串,直到斜线如:honda
和 toyota
.
这是我的代码:
$input = 'localhost/used_cars/search/mk_honda/md_city/mk_toyota';
preg_match('#/mk_([^/]*)/#', $input, $matches);
echo $matches[1];
该代码仅从 mk_honda
中提取 honda
,但为什么它没有从 mk_toyota
中提取 toyota
?
首先,您没有使用 preg_match_all
,其次,第二件事 toyota
末尾没有 /
,因此它不匹配,请将其删除:
preg_match_all('#/mk_([^/]*)#', $input, $matches);
print_r($matches[1]);