Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2013, 12:47   #1
Lohmatiyy
Пользователь
 
Регистрация: 29.10.2010
Сообщений: 57
По умолчанию Помочь составить регулярное выражение

Не знаю, в тот ли раздел пишу, ну да ладно. Суть - есть строка вида "093jrv0rg[efwef]erge{{{ergeRGre}}}erbergergferg}}}v rergerbge}verbvr{{{vervrer}}}vcerbv erb{{{vrevmerokm[]"
Из нее, при помощи регулярки, нужно вычленить все подстроки, которые не ограничены последовательностями {{{ и }}}. То есть, для этой строки должно быть выделено все, кроме {{{ergeRGre}}} и {{{vervrer}}}. Прошу помощи в составлении такой регулярки.
Lohmatiyy вне форума Ответить с цитированием
Старый 10.08.2013, 23:51   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Пикник на кухне

Регулярное выражение не подскажу, но можете воспользоваться заменой в Word:
Изображения
Тип файла: jpg 2013-08-10_23-50_Word_Ctrl-h.jpg (55.4 Кб, 130 просмотров)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 11.08.2013, 07:52   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,605
По умолчанию

Что-то типа такого(регулярные выражения Perl )


Код:
while (s непусто)
{
s =~/(.*){{{(.*)?}}}(.*)/
# в $1 часть подстроки, не ограниченная последовательносnями {{{ и }}}
s = $3;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 15.08.2013, 13:30   #4
Lohmatiyy
Пользователь
 
Регистрация: 29.10.2010
Сообщений: 57
По умолчанию

Может я что-то делаю не так, но в PHP результат использования этого выражения в preg_match_all следующий:
Array ( [0] => Array ( [0] => 093jrv0rg[efwef]erge{{{ergeRGre}}}erbergergferg}}}v rergerbge}verbvr{{{vervrer}}}vcerbv erb{{{vrevmerokm[] [1] => 093jrv0rg[efwef]erge{{{ergeRGre}}}erbergergferg}}}v rergerbge}verbvr [2] => {{{vervrer}}} [3] => vcerbv erb{{{vrevmerokm[] ) )

Т.е. первая группа, ограниченная этими последовательностями, игнорируется.
Lohmatiyy вне форума Ответить с цитированием
Старый 15.08.2013, 17:40   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,605
По умолчанию

Поиск тогда нужно попробовать сделать "нежадным". В регулярном выражении знак вопроса делает поиск "нежадным".
Код:
s =~/(.*)?{{{(.*)?}}}(.*)/
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу составить регулярное выражение hon PHP 0 24.06.2013 20:50
Составить регулярное выражение для preg_match Даниил_глазко PHP 0 19.05.2013 09:21
регулярное выражение Alexandr555 Общие вопросы Delphi 3 07.04.2012 23:18
Составить регулярное выражение YHawk PHP 2 19.03.2012 06:56
правильно составить регулярное выражение. мимо Общие вопросы Delphi 0 04.07.2009 10:15