Чтение онлайн

на главную - закладки

Жанры

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

]

Вычисляет символьный класс

Регулярное выражение /\d\d/m может быть сопоставлено следующим подстрокам: 11, 22, 33. Если в начале РВ стоит ^, то совпадения ищутся в начале строки, поэтому выражение /^\d\d/m найдет только 11.

Когда в конце РВ стоит знак доллара $, поиск производится в конце строки, поэтому выражение /\d\d$/m найдет только 33.

Шаблону же /^\d\d\d$/ будет удовлетворять строка, целиком состоящая из трехзначного числа (т.е. она и начинается и заканчивается этим числом).

–

<?

//считываем
файл в строку

$str = file_get_contents('1.htm');

$pattern = "!^<[^/]+>!mU";

// осуществляем поиск

$n = preg_match_all ($pattern,

$str, $res);

// выводим результаты

for ($i=0;$i<$n;$i++)

echo htmlspecialchars($res[0][$i]).

"<br>";

?>

\

Переходный символ со множеством назначений

^

Объявляет начало объекта (или строки в многострочном режиме). То есть этот символ определяет, что искомый текст должен находиться в начале строки. Альтернатива: «\A»

$

Объявляет конец объекта (или строки в многострочном режиме). То есть этот символ определяет, что искомый текст должен находиться в конце строки. Альтернативы: «\Z», «\z»

.

Совпадает с любым символом, кроме символа перевода строки (по умолчанию)

[

Начинает определение символьного класса

]

Заканчивает определение символьного класса

|

Разделяет перечисление альтернативных вариантов

(

Начинает подшаблон регулярное (подвыражение)

)

Заканчивает подшаблон

?

Расширяет значение «(», квантификаторов 0 или 1, и квантификатор минимизации

*

0 или больше повторений (квантификатор)

+

1 или больше повторений (квантификатор)

{

Начинает минимальный/максимальный квантификатор

}

Заканчивает минимальный/максимальный квантификатор

Шаблон ограничен восклицательными знаками. Первая «^» значит, что мы ищем совпадения в начале строк, потом идет символ «<» – его и ищем в строке, после него должно идти все, что угодно, кроме обратного слэша (конструкция «[^\]» ), «+» говорит, что стоящий перед ним символ повторяется один и

более раз и заканчивается все это символом «>». Таким образом, выделяются все теги в начале строк.

–

<?

//считываем файл в строку

$str = file_get_contents('1.htm');

$pattern = "!\s[А-Яа-я]+".

"\s([А-Я]\.\s*)([А-Я]\.\s*)$!m";

// шаблон ограничен восклицатель-

// ными знаками, m – модификатор,

// включающий многострочный режим

// первый \s означает, что перед

// фамилией должен идти пустой

// символ (например, пробел)

// [А-Яа-я] задает одну из букв

// алфавита в любом регистре,а в

// комбинации со знаком плюс

// определяет,что эта буква

// повторяется один и более

// раз следующий \s означает, что

// между фамилией и инициалами

// должен быть пробел

// Далее идет подвыражение,

// определяющее инициалы.

// Это буква от А до Я, после

// которой стоит точка ('\.')

// Экранируем точку, чтобы

// избавиться от ее специального

// значения. После буквы с точкой

// может идти или не идти пробел

// или несколько. Вся конструкция

// повторяется минимум два раза.

// Последний символ $ означает,

// что фамилия с инициалами

// должны находиться в конце

// строки.

//осуществляем поиск

$n = preg_match_all ($pattern,

$str, $res);

// выводим результаты

for ($i=0;$i<$n;$i++)

echo htmlspecialchars($res[0][$i]).

"<br>";

?>

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

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

<?

$str = "Доцент Смирнов совершил".

"открытие. Его учителем была ".

"профессор Иванова. ".

"Этим открытием Смирнов ".

"завоевал себе степень ".

"доктора. Раньше он был ".

"только кандидат.";

$pattern = "/(профессор|доцент)".

Поделиться:
Популярные книги

H2o

Дубинянская Яна
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
H2o

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Время Путина

Медведев Рой Александрович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Время Путина

Добыча. Всемирная история борьбы за нефть, деньги и власть

Ергин Дэниел
Документальная литература:
публицистика
5.00
рейтинг книги
Добыча. Всемирная история борьбы за нефть, деньги и власть

Смерть в Сингапуре [сборник]

Томас Росс
Детективы:
классические детективы
5.00
рейтинг книги
Смерть в Сингапуре [сборник]

Всеобщая история

Новиков Сергей Викторович
Научно-образовательная:
история
5.00
рейтинг книги
Всеобщая история

Клинки у трона

Садов Сергей Александрович
3. Рыцарь Ордена
Фантастика:
фэнтези
9.40
рейтинг книги
Клинки у трона

Сон разума

Ливадный Андрей Львович
39. Экспансия: История Галактики
Фантастика:
космическая фантастика
8.81
рейтинг книги
Сон разума

Асана, пранаяма, мудра, бандха

Сарасвати Свами Сатьянанда
Дом и Семья:
здоровье и красота
8.33
рейтинг книги
Асана, пранаяма, мудра, бандха

33 стратегии войны

Грин Роберт
Научно-образовательная:
психология
история
6.25
рейтинг книги
33 стратегии войны

Лекарь Империи 6

Карелин Сергей Витальевич
6. Лекарь Империи
Фантастика:
городское фэнтези
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 6

Мир приключений 1984 г.

Ефимов Е.
Альманах "Мир приключений"
Фантастика:
научная фантастика
5.00
рейтинг книги
Мир приключений 1984 г.

Кухня века

Похлебкин Вильям Васильевич
Итоги века. Взгляд из России
Научно-образовательная:
история
8.22
рейтинг книги
Кухня века

Сборник.Том 2

Азимов Айзек
2. Отцы-основатели. Весь Азимов
Фантастика:
научная фантастика
5.00
рейтинг книги
Сборник.Том 2