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

         

победитель получит


победитель получит ((?:золотую|позолоченный) (медаль|кубок))
Пример 13.1. Применение ?:
Закрыть окно

<? // считываем файл в строку $str = file_get_contents('1.htm'); $pattern = "/<body.*?>[\n\s]*<h1>". "(.*?)<\/h1>[\n\s]*/m"; // осуществляем поиск $n = preg_match_all ($pattern, $str, $res); echo $res[1][0]; // выводим заголовок ?>
Пример 13.2. Поиск названия в html-файле
Закрыть окно

<? //Рассмотрим html-файл, где имеется //следующая строка: $str = "<div id=1>Привет</div> ". "<p>Текст, не заключенный в тег ". "div</p><div id=2>Пока</div>"; // Если мы хотим найти текст, // содержащийся между тегами div, // естественно написать такой шаблон: $pattern = "!<div id=1>.*</div>!si"; // Но этот шаблон слишком "жадный" // и захватит также и текст, // заключенный в нашем примере между // тегами <p>. Чтобы этого избежать, // нужно написать следующий шаблон, // отличающийся только наличием знака // вопроса, который запрещает // квантификатору быть "жадным". $pattern1 = "!<div id=1>.*?</div>!si"; // Запускаем поиск в строке $str // совпадений с шаблонами // $pattern и $pattern1 $s = preg_match_all ($pattern, $str, $res); $js = preg_match_all ($pattern1, $str, $res1); //выводим результаты поиска // функция htmlspecialchars позволяет // выводить html без // его обработки браузером echo "Жадный шаблон:". htmlspecialchars($res[0][0]). "<br>"; echo "Нежадный шаблон:". htmlspecialchars($res1[0][0]); ?>
Пример 13.3. Использование "жадных" квантификаторов
Закрыть окно

<? //считываем файл в строку $str = file_get_contents('1.htm'); $pattern = "/(?<=Автор:)\s[А-Я]". "[а-я]*\s([А-Я]\.\s*){1,2}/m"; // осуществляем поиск $n = preg_match_all ($pattern, $str, $res); // выводим результаты for ($i=0;$i<$n;$i++) echo htmlspecialchars($res[0][$i]). "<br>"; ?>
Пример 13.4. «Смотрящие назад» утверждения
Закрыть окно

( \( )? [^()]+ (?(1) \) )
Пример 13. 5. Условные подвыражения
Закрыть окно

(?(?=[^a-z]*[a-z])\d{2}-[a-z]{3}-\d{2} |\d{2}-\d{2}-\d{2})
Пример 13. 6. Условные подвыражения
Закрыть окно
Содержание раздела