Существует ли способ поместить подстановочный знак в строку? Причина, почему я спрашиваю, состоит в том, потому что в настоящее время у меня есть функция для поиска подстроки между двумя подстроками (т.е. захватить содержание между "мой", и "имеет блох" в предложении "моя собака, имеет блох", приводя к "собаке").
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
То, что я хочу сделать, имеют его поиск с подстановочным знаком в строке. Поэтому скажите, что я ищу между "%WILDCARD %", и "имеет блох" в предложении "Моя собака, имеет блох" - это все еще произвело бы "собаку".
Я не знаю, объяснил ли я это слишком хорошо, но надо надеяться кто-то поймет меня :P. Большое спасибо за чтение!
Это один из немногих случаев, когда регулярные выражения действительно полезны. :)
if (preg_match('/my (\w+) has/', $str, $matches)) {
echo $matches[1];
}
См. Документацию для preg_match .
Используйте regex.
$string = "My dog has fleas";
if (preg_match("/\S+ (\S+) has fleas/", $string, $matches))
echo ($matches[1]);
else
echo ("Not found");
\S
означает любой непробельный символ, +
означает один или несколько предыдущих, так что \S+
означает совпадение одного или нескольких непробельных символов. (...)
означает захват содержимого подматча и помещение его в массив $matches
.