Как использовать регулярные выражения, чтобы найти точно слово или строку в строке? - PullRequest
0 голосов
/ 16 июня 2019

Я использую регулярное выражение, чтобы найти слово или несколько слов в строке. Например:

if(preg_match("~\bbet\b~",$text) !== false)  // want to find "bet" in string

Я хочу проверить, есть ли в этой строке ставка ($ text)

Но, если $ text = "есть разница между этой строкой и этой строкой", вернет true.

Теперь, я хочу, например, они вернут истину:

$ text = "Держу пари, он девственник!"

$ text = "Спорим, ты рад, что прилетел туда."

Но это предложение вернет false

$ text = "есть разница между этой строкой и этой строкой"

Или еще 1 пример для более жесткой строки:

Я хочу найти " hi " в строке Но не привет в это

Он вернет истину, если

$ text = "hi";

Но верните false если

$ text = "this";

1 Ответ

0 голосов
/ 16 июня 2019

Чтобы bet вернул true, мы можем использовать прогноз с границей слова и флагом i с выражением, похожим на:

.*(?=\bbet\b).*

Демо 1

$re = '/.*(?=\bbet\b).*/mi';
$str = 'I bet he\'s a virgin!
Bet you\'re glad you flew out there.
I betty he\'s a virgin!
Betty you\'re glad you flew out there.';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);

Мы можем аналогичным образом проверить для hi и this:

.*(?=\bhi\b).*

Демо 2

ТЕСТ 2

$re = '/.*(?=\bhi\b).*/mi';
$str = 'there is difference between this string and that string
hi there, is difference between that string and other string false?

';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...