[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помощь в regular expression
masterlelik
Просьба помочь написать регулярку, которая вырезает все пустые строки находящиеся в фигурных скобках.
Есть строка:
11111

2222{
333333


44444

55555}
И надо, чтоб получилось
11111

2222{333333
44444
55555}


_____________
volter9
masterlelik
Как то так:
$input = "11111

2222{
333333


44444

55555}"
;
$regex = "/\{([^\}]+)\}/";

echo preg_replace_callback($regex, function ($matches) {
return preg_replace('/\n{2,}/', "\n", $matches[0]);
}, $input);


_____________
Мой блог
masterlelik
А может можно допилить регулярку основанную на \b ?

$str=preg_replace("/\{(\w+)\n{2,}\b\}/", "\\1\n", $str);

_____________
volter9
masterlelik
Вряд ли. Можно еще так:
$input = "11111

2222{
333333


44444

55555}"
;
$regex = "/(?<=\{)([^\{]+)(?=\})/";

echo preg_replace_callback($regex, function ($matches) {
return preg_replace('/\n{2,}/', "\n", $matches[0]);
}, $input);


Но по другому у меня не получается. :unsure:

_____________
Мой блог
FatCat
Зачем тут регулярка?
$txt = explode(PHP_EOL, $txt);
$flag = FALSE;
foreach($txt as $k=>$v)
{
if($flag)if(!trim($v))unset($txt[$k]);
if(stristr($v,"{"))$flag = TRUE;
if(stristr($v,"}"))$flag = FALSE;
}
$txt = implode(PHP_EOL, $txt);


_____________
Бесплатному сыру в дырки не заглядывают...
masterlelik
всем спасибо

_____________
Быстрый ответ:

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