Строка поиска Php (с подстановочными знаками)

Существует ли способ поместить подстановочный знак в строку? Причина, почему я спрашиваю, состоит в том, потому что в настоящее время у меня есть функция для поиска подстроки между двумя подстроками (т.е. захватить содержание между "мой", и "имеет блох" в предложении "моя собака, имеет блох", приводя к "собаке").

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. Большое спасибо за чтение!

7
задан kennytm 21 February 2010 в 08:57
поделиться

2 ответа

Это один из немногих случаев, когда регулярные выражения действительно полезны. :)

if (preg_match('/my (\w+) has/', $str, $matches)) {
    echo $matches[1];
}

См. Документацию для preg_match .

10
ответ дан 6 December 2019 в 09:59
поделиться

Используйте 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.

2
ответ дан 6 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: