catthr
9/2/2015 - 8:31 AM

php regexp preg_match

php regexp preg_match

// Простая проверка
if(!preg_match('/москва/', mb_strtolower($address))){
    continue;
}

// С объектом для результата
preg_match('@^(?:http://)?([^/]+)@i', "http://www.php.net/index.html", $matches)

preg_match

Простая проверка, возвращает 1 в случае успеха, 0 - нет, false - Ошибка

if(!preg_match('/москва/', mb_strtolower($address))){
    continue;
}

Или можно добавить объект, который будет содержать часть строки, соответствующую вхождению всего шаблона $matches[1] - часть строки, соответствующую первой подмаске, и так далее.

preg_match('@^(?:http://)?([^/]+)@i', "http://www.php.net/index.html", $matches)

Общее

Есть метасимволы, которые надо экранировать Это . ^ $ * + ? { [ ] \ | ( )

Флаги

Регистронезависимый поиск, case-insensitive, ignore case

/regex/i

**ВАЖНО! Метасимвол . не действует на перевод строки! **

$subject="<tag>Hello\nWorld</tag>";

preg_match( '/<tag>[A-Za-z\\s]*<\\/tag>/' , $subject ); //true

preg_match( '/<tag>[^<]*<\\/tag>/' , $subject ); //true

preg_match( '/<tag>(.|\\n)*<\\/tag>/' , $subject ); //true

preg_match( '/<tag>.*<\\/tag>/s' , $subject ); //true

preg_match( '/<tag>.*<\\/tag>/' , $subject ); //ATTENTION! *false*