Язык программирования PHP


3 - часть 3


Примеры ( | и .)

  1. Пусть имеется некий текст. Нам нужно найти всех упомянутых в нем людей со званиями.

<? $str = "Доцент Смирнов совершил". "открытие. Его учителем была ". "профессор Иванова. ". "Этим открытием Смирнов ". "завоевал себе степень ". "доктора. Раньше он был ". "только кандидат."; $pattern = "/(профессор|доцент)". "\s[А-Яа-я]+(\s|\.)/i"; // осуществляем поиск $n = preg_match_all ($pattern, $str, $res); // выводим результаты for ($i=0;$i<$n;$i++) echo htmlspecialchars($res[0][$i]). "<br>"; ?>

Метасимвол прямая черта « | » позволяет задавать альтернативные варианты. В примере мы хотели найти всех профессоров или доцентов. Для этого было создано подвыражение «(профессор|доцент)». После звания через пробел фамилия человека, которому оно принадлежит, – для этого существует комбинация «\s[А-Яа-я]+». После фамилии идет либо опять пробел, либо точка, если это конец предложения. Получаем опять два альтернативных варианта: «(\s|\.)» (здесь точка экранируется обратным слэшем, чтобы она понималась как обычная точка, без специального значения).




Начало  Назад  Вперед