Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярка 
:(
    Опции темы
SneG0K
Дата 8.5.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Код

: [
    Данные
]

Вопрос, как мне получить Данные?
Код

preg_match('/(: [)?(])/i', $elem, $matches);


Это сообщение отредактировал(а) SneG0K - 8.5.2009, 22:26
PM WWW Skype   Вверх
enof
Дата 8.5.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



#: \[\s*(.*)\s*\]#s
PM MAIL ICQ Skype   Вверх
source777
Дата 8.5.2009, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Попробуй
Код

preg_match('/:\s\[\s*(.*?)\s*\]/', $elem, $matches);



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
SneG0K
Дата 8.5.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Не убирает : [
Код

 : [
    question: Вопрос;
    answers: {
        1: Ответ - 0;
        2: Ответ - 1;
    }



Добавлено через 41 секунду
source777, Вообще ничего
PM WWW Skype   Вверх
enof
Дата 8.5.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Всмысле не убирает? Ничего и не должно убирать.
Совпавший текст в $matches[1].
В примере нет закрывающей скобки, так и надо?
Тогда так:
#: \[\s*(.*)\s*\]?#s
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 8.5.2009, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



enof, спасибо, первый вариант подошел... Я думал, что результат будет в $matches[0]
PM WWW Skype   Вверх
enof
Дата 8.5.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Код

preg_match('#:\s*\[\s*(.*)\s*\]?#s', $str, $out);

Проверил, работает.

Добавлено через 1 минуту и 4 секунды
Форум тупит smile 
PM MAIL ICQ Skype   Вверх
source777
Дата 8.5.2009, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 2
Всего: 56



Цитата(SneG0K @  8.5.2009,  22:34 Найти цитируемый пост)
source777, Вообще ничего 
Чего ничего? должно работать, причём в более общем случае, чем первый вариант от enof.


Это сообщение отредактировал(а) source777 - 8.5.2009, 22:45


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
enof
Дата 8.5.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Точка по умолчанию не совпадает с переносом строки.
PM MAIL ICQ Skype   Вверх
SneG0K
Дата 8.5.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Ладно, сходу, что-то у меня тормоза с регулярками...
Код

    question: Вопрос;
    answers: {
        1: Ответ - 0;
        2: Ответ2 - 1;
   }

Как из этого получить массив
Код

Array
(
    [question] => Вопрос
    [answers] => Array
                          (
                              [0] => Array
                                         (
                                             [answer] => Ответ
                                             [true] => 0
                                         )
                              [1] => Array
                                         (
                                             [answer] => Ответ2
                                             [true] => 1
                                         )
                          )

)


Это сообщение отредактировал(а) SneG0K - 8.5.2009, 23:00
PM WWW Skype   Вверх
enof
Дата 8.5.2009, 23:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Код

preg_match('#question:\s*(.*);\s*answers:\s*{\s*(.*)\s*}#s', $text, $out);
preg_match_all('#\d+:\s*(.*)\s*-\s*(0|1);\s*#', $out[2], $matches, PREG_SET_ORDER);
$answers = array();
foreach($matches as $v)
    $answers[] = array('answer' => $v[1], 'true' => $v[2]);
$result = array('questions' => $out[1], 'answers' => $answers);

PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.