[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вопрос по preg_match_all
kpripper
Это функция возвращает массив
первый елемент массива это совпадения по регулярному выражению
второй элемент то же, но без тегов, так ?

Например:

"#<h1 lang=\"en\" class=\"title\">(.*)</h1>#Usi"

из строки

<h1 lang="en" class="title">
Neurocritical Care
</h1>

выводит:


Array
(
[0] => Array
(
[0] => <h1 lang="en" class="title">
Neurocritical Care
</h1>
)

[1] => Array
(
[0] =>
Neurocritical Care

)

)

Если так, то что будет в элементах где нет тегов ? Что-то в описании функции про это толком ничего нет.



Спустя 18 минут, 42 секунды (4.01.2012 - 15:30) Winston написал(а):
В элементе с индексом 0, находится вся строка которая совпадает с регуляркой.
В элементах от 1 и до n находятся совпадения в подмасках, то есть в ( )
То есть ты написал вот так
Цитата (kpripper @ 4.01.2012 - 14:11)
(.*)

Значит совпадения будут находится в элементе с индексом 1. Если ты добавишь еще одну пару скобок ( ), значит то, что попадется в них, будет находится в элементе с индексом 2, и т.д.

Спустя 5 минут, 39 секунд (4.01.2012 - 15:36) Лена написал(а):
Другой пример, подтверждающий слова Winston

$pattern1 = "#<h1 lang=\"en\" class=\"title\">([a-z\s]+)([1-9\s]+)</h1>#Usi";
$str1 = '<h1 lang="en" class="title">
Neurocritical Care 123456
</h1>'
;

preg_match_all($pattern1,$str1,$out1);

print "<pre>";
print_r($out1);

В первом элементе $out1 - все выражение, во втором - буквы(первые группирующие скобки), в третьем(вторые группирующие скобки) - цифры.

Спустя 1 час, 3 минуты, 2 секунды (4.01.2012 - 16:39) kpripper написал(а):
А понятно, спасибо. Я все думал, что это за подмаски там такие.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.