Справка PHP с регулярными выражениями ... ошибка: разделитель не должен быть буквенно-цифровым - PullRequest
2 голосов
/ 12 августа 2010

Я новичок в регулярных выражениях в php.Я просто пытаюсь сделать простой preg_match на две строки.Вот мой код:

$pattern = '\\w*'.strtolower($CK);

if(preg_match($pattern, $rowName, $matches) == true)
            {
                echo 'true';

            }

Но я продолжаю получать сообщение об ошибке:

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in /home/daskon/public_html/reflexInvestor_dev/php/rss_functions.php on line 319

Я думаю, это потому, что мне нужно что-то поставить после шаблона, но я не могунайти, что это такое.Когда я пытаюсь использовать тот же шаблон в тестере регулярных выражений, он работает нормально.

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Вам нужно обернуть шаблон в разделитель , который отмечает начало и конец. Любой символ «не буквенно-цифровой, без обратной косой черты, без пробелов» работает. / очень распространено, поэтому:

$pattern = '/\\w*' . strtolower($CK) . '/';

Причина разделителя в том, что вы можете включить в шаблон модификаторы шаблона , но они появляются после разделителя

2 голосов
/ 12 августа 2010

Вам нужно обернуть шаблон в разделительные символы (мне нравится использовать #, так как они редко нужны внутри регулярного выражения):

if (preg_match('#' . $pattern . '#', $rowName, $matches)) {

(Вам также не нужен == true, это избыточно, так как это то, что делает if в любом случае внутренне ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...