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

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

Жанры

Курс "Язык программирования 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 = "/(профессор|доцент)".

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

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Звездная Кровь. Изгой II

Елисеев Алексей Станиславович
2. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
технофэнтези
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой II

Газлайтер. Том 21

Володин Григорий Григорьевич
21. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 21

Я Гордый Часть 3

Машуков Тимур
3. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый Часть 3

Изгой Проклятого Клана. Том 2

Пламенев Владимир
2. Изгой
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Изгой Проклятого Клана. Том 2

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4

Удержать 13-го

Уолш Хлоя
Любовные романы:
остросюжетные любовные романы
эро литература
зарубежные любовные романы
5.00
рейтинг книги
Удержать 13-го

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Двойник короля 13

Скабер Артемий
13. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 13

Свет Черной Звезды

Звездная Елена
6. Катриона
Любовные романы:
любовно-фантастические романы
5.50
рейтинг книги
Свет Черной Звезды

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Барон запрещает правила

Ренгач Евгений
9. Закон сильного
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Барон запрещает правила

Чужак из ниоткуда

Евтушенко Алексей Анатольевич
1. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда