Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Регулярное выражение, Вложенные скобки
Rumych  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 74
Пользователь №: 35552
На форуме: 4 года, 1 месяц, 6 дней
Карма: 2




Здравствуйте.
Есть строка состоящая из конструкций такого вида - {{mounted|installed} source|lamp|lighting fixture}{On top of that| to everything else|Over and above|More by token}
Как правильно составить регулярное выражение, что-бы при использовании preg_match_all() в результат попадала как конструкция с одинарными скобками {} так и с вложенными{{}}.
Пробовал так
preg_match_all('/\\{((\\{)*(\w)*(\\|)*(\s)*)*\\}/', $str, $arrClearText, PREG_SET_ORDER, 0);
но находит только одинарные скобки{}, а если так
preg_match_all('/\\{((\\{)*(\\})*(\w)*(\\|)*(\s)*)*\\}/', $str, $arrClearText, PREG_SET_ORDER, 0);
т.е. добавляю закрывающую скобку - } то сервер глючит.
Спасибо.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 5 дней
Карма: 591




так?
$text = '{{mounted|installed} source|lamp|lighting fixture}{On top of that| to everything else|Over and above|More by token}'; 
preg_match_all('#(?<=\{)[^{}]+(?=\})#', $text, $match);
echo '<pre>'.print_r($match, 1).'<pre>';
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rumych  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 74
Пользователь №: 35552
На форуме: 4 года, 1 месяц, 6 дней
Карма: 2




Да, спасибо! biggrin.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 5 дней
Карма: 591




Цитата (Rumych @ 29.01.2013 - 14:50)
Да, спасибо!

уверен? Или может так должно быть?
$text = '{{mounted|installed} source|lamp|lighting fixture}{On top of that| to everything else|Over and above|More by token}'; 
preg_match_all('#(?<=\{|\})[^{}]+(?=\{|\})#', $text, $match);
echo '<pre>'.print_r($match, 1).'<pre>';
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Rumych  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 74
Пользователь №: 35552
На форуме: 4 года, 1 месяц, 6 дней
Карма: 2




Из этого варианта
$text = '{{mounted|installed} source|lamp|lighting fixture}{On top of that| to everything else|Over and above|More by token}'; 
preg_match_all('#(?<=\{)[^{}]+(?=\})#', $text, $match);
echo '<pre>'.print_r($match, 1).'<pre>';


я взял для себя основную идею.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса