52568.fb2
Регулярное выражение /\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');