X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> regexp запутался
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 4.2.2011, 23:47; Ответить: Letmetouchyou
Сообщение #1


[PHP]<?php

$line = 'before {#user:name} after {#user:surname} {#user:city}';

$regexp = '/(.*?)({#\s*([^:]+)\s*:\s*([^}]+)\s*})(.*)/s';

#$regexp = '/(.*)?({#\s*([^:]+)\s*:\s*([^}]+)\s*})(.*)/s';

$after = $line;

while( preg_match($regexp, $after, $output) ){

list($string, $before, $tag, $key, $value, $after) = $output;



var_dump($output);


}


?>[/PHP]

как то запутался я с этими регулярками.
Почему верхняя работает правильно, а нижняя не правильно?

разница в низ в самом начале:
'/(.*?)(..
'/(.*)?(...

нудно выцеить с строки тег, что идет дотега, и после.

preg_match_all тут не подходит
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
krevedko_hb
krevedko_hb
сообщение 5.2.2011, 2:33; Ответить: krevedko_hb
Сообщение #2


разница в низ в самом начале:

Такая регулярка .* по умолчанию жадная, найдет все совпадения. Знак вопроса после квантификатора + или * инвертирует жадность.
Т.е. в строке <a href="site"></a> регулярка <.*> - схватит <a href="site"></a>, <.*?> - <a href="site">

нудно выцеить с строки тег, что идет дотега, и после.

Хоть экстрасенсов зови. Тег что идет до тега которой после тега, ага. ТС объясни по человечески что конкретно требуется спарсить.

/before\s*\{([^:]+:[^}]+)\}\s*after\s*{([^:]+:[^}]+)\}/
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 5.2.2011, 16:30; Ответить: Letmetouchyou
Сообщение #3


(krevedko_hb @ 5.2.2011, 04:33) *
Хоть экстрасенсов зови. Тег что идет до тега которой после тега, ага.

А что, не видно какую строку я в примере проверяю?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Выручайте, совсем запутался!
0 Vjvan064 6102 11.2.2010, 19:27
автор: -Vjvan064-


 



RSS Текстовая версия Сейчас: 29.3.2024, 3:17
Дизайн