Intereting Posts

Найти все слова с strpos ()

Привет люди 🙂 Я пытаюсь использовать strpos (), чтобы найти целые слова в предложении. Но на данный момент он также находит слово, если оно просто является частью другого слова. Например:

$mystring = "It's a beautiful morning today!"; $findme = "a"; $pos = strpos($mystring, $findme); 

В этом примере он найдет «а» в слове «а» (как и должно быть), но также и в «прекрасном», потому что в нем есть а.

Как я могу найти только целые слова, а не если это часть других слов?

Related of "Найти все слова с strpos ()"

Используйте регулярное выражение с разделителем границ слова \b , например:

 $mystring = "It's a beautiful morning today!"; preg_match_all('/\ba\b/', $mystring, $matches, PREG_OFFSET_CAPTURE); var_dump($matches); 

возвращается

 array(1) { [0]=> array(1) { [0]=> array(2) { [0]=> string(1) "a" [1]=> int(5) } } } 

Это задание для регулярного выражения:

 $regex = '/\b'.$word.'\b/'; 

По сути, он находит буквы, окруженные границей слов (бит \b ). Итак, чтобы найти позицию:

 preg_match($regex, $string, $match, PREG_OFFSET_CAPTURE); $pos = $match[0][1]; 

regex трудно для новичков, по-другому, и я признаю, что это не самое лучшее, было бы использовать
$ findme = "a"