[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про регулярные выражения
program90
Подскажите почему не работает регулярное выражение?


function findTag($name, $str)
{
//"|<[^>+]>(.*)</[^>]+>|U"
preg_match_all("/<[^>]+>/", $str, $arr, PREG_PATTERN_ORDER);
//$i = 0;
/*while ($arr[1][$i] != null)
{
$res[$i] = $arr[1][$i];
};
*/

return $arr[0][0];
};

$v = findTag("reload", "<reload>yes</reload>");
var_dump($v);


Выводит: string(8) ""
Т.е. строка вроде бы по длине правильная, но она пустая



Спустя 55 минут (10.01.2011 - 18:35) moskitos80 написал(а):
Попробуй вместо var_dump($v) написать print_r($v) и посмотри исходный код страницы, и ты увидишь там свой "<reload>".

Спустя 15 минут, 58 секунд (10.01.2011 - 18:51) DedMorozzz написал(а):
function findTag($name, $str) - тут 2 параметра. Зачем? Используешь только 1.

Спустя 48 минут, 43 секунды (10.01.2011 - 19:40) program90 написал(а):
Ну вообще она должна работать так:
$str = findTag("reload", "<reload>yes</reload>");
echo $str;
И должна выбирать внутренность тэга по выражению:
|<[^>+]>(.*)</[^>]+>|U

Спустя 15 минут, 58 секунд (10.01.2011 - 19:56) DedMorozzz написал(а):
$a='<zzz>AA111</zzz>';
$b = 'zzz';
preg_match_all('#<'.$b.'>(.*?)</'.$b.'>#is',$a,$arr);
echo $arr[1][0];

Оберни это в функцию - уже сам.

Спустя 1 час, 47 минут, 40 секунд (10.01.2011 - 21:43) program90 написал(а):
А что значит знак вопроса? и откуда взялись решетки #? Это эквиваленты слэша '/' ?

Спустя 15 часов, 26 минут, 47 секунд (11.01.2011 - 13:10) DedMorozzz написал(а):
Цитата
откуда взялись решетки #? Это эквиваленты слэша '/' ?
Верно, только более универсальный эквивалент, решётку приходится экранировать крайне редко.
Цитата
А что значит знак вопроса?
Читай про ленивый и жадный поиск
Быстрый ответ:

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