PHP preg_match найти определенное слово - PullRequest
1 голос
/ 22 августа 2011

Я пытаюсь использовать preg_match, чтобы найти определенное слово в текстовой строке.

$pattern = "/" . $myword . "/i";

Этот шаблон найдет слово " автомобиль " внутри "мультфильм" ... Мне нужно просто совпадения, где появляется определенное слово.

P.S. Слово может быть где угодно внутри текста. Спасибо

Ответы [ 3 ]

5 голосов
/ 22 августа 2011

Оберните свое регулярное выражение границами слов :

$pattern = "/\b" . $myword . "\b/i";

или, если ваш $myword может содержать мета-символы регулярного выражения, выполните:

$pattern = "/\b" . preg_quote($myword) . "\b/i";
0 голосов
/ 04 октября 2016
$subject = "abcdef";

$pattern = '/^def/';

preg_match($pattern, $subject, $matches, PREenter code hereG_OFFSET_CAPTURE, 3);

print_r($matches);

рисунок

Шаблон для поиска в виде строки.

предмет

Строка ввода.

соответствует

Если совпадения предоставлены, то он заполняется результатами поиска. $matches[0] будет содержать текст, который соответствует полному шаблону, $matches[1] будет иметь текст, который соответствует первой захваченной скобке subpattern и т. Д.

флаги

Флаги

могут быть следующими:

PREG_OFFSET_CAPTURE

Если этот флаг пропущен, для каждого найденного совпадения будет также возвращаться смещение вспомогательной строки. Обратите внимание, что это изменяет значение совпадений в массив, где каждый элемент является массивом, состоящим из совпадающей строки со смещением 0 и ее строкового смещения в тему со смещением 1.

смещение

Обычно поиск начинается с начала строки темы. Необязательный параметр offset может использоваться для указания альтернативного места, с которого начинается поиск (в байтах).

* 1 028 * Пример:
if (preg_match('/;/', $_POST['value_code'])) 

    {
        $input_error = 1;
        display_error(_("The semicolon can not be used in the value code."));
        set_focus('value_code');
    }
0 голосов
/ 22 августа 2011

Попробуйте это:

$pattern = "/\b" . $myword . "\b/i";

В регулярных выражениях escape-символ \b представляет символ "границы слова".Оборачивая поисковый термин в эти границы, вы гарантируете, что вы будете соответствовать только самому слову.

...