Что нового

[RegExp] Получение части многострочного текста.

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Имеется текст вида:
Код:
Текст~~~
main:
{
    PROCESS[   абсолютно любой текст за исключением переносов   ];
    CALL[   абсолютно любой текст за исключением переносов   ];
}
Текст~~~

init:
{
    PROCESS[   абсолютно любой текст за исключением переносов   ];
    CALL[   абсолютно любой текст за исключением переносов  ];
}

Необходимо получить следующие строки в массив $Array из main(их может быть любое количество):
Код:
$Array[0] = PROCESS[   абсолютно любой текст за исключением переносов   ];любой делительCALL[   абсолютно любой текст за исключением переносов  ];любой делитель и так далее...

Заранее спасибо :3

P.S Даже есть предложение, что если сначала прочитать саму шапку методом '\r\n(main)\:\r\n\{', а затем ввести группу (строка с переносом) и проверкой справа на отсутствие '}'. Ну и в конце добавить группу единственного повтора строки с окончанием '\r\n\}'.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Если правильно понял :
Код:
#include <Array.au3>
$sText=ClipGet()
$aArray=StringRegExp( StringRegExpReplace( $sText, '\r\n', '' ), '{(.+?)}', 3 )
_ArrayDisplay($aArray)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
$vTest = ClipGet() ;Тут содержимое текста

$aRet = StringRegExp($vTest, 'main:\r?\n{\s+([\S\s]+?)\s+}', 3)
ConsoleWrite($aRet[0] & @LF)
 
Верх