Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Примеры регулярных выражений 
Author Message
yozhik



PostPosted: Mon Jul 20, 2026 13:58    Post subject: Reply with quote

Batya
 Условия списком, для удобства


Я бы сделал так. Разъединяю склеенные строки. Запускаю несколько раз следующую замену (найти/заменить):
Code:
(?m-s)^(_\|_\d+_\|_)(.+)(\1.+?)$
\1\2\r\n\3


За каждый проход эта регулярка будет «отщипывать» нужный нам блок от конца строки. Запускаю «несколько раз» — т.е. столько, сколько нужно. 100 раз, 200 раз. В зависимости от максимально возможного кол-ва склеенного. В конце это приведёт к требуемому виду:
Code:
_|_начало_|...
_|_начало_|...
_|_начало_|...
и т.п.


Условие 5 соблюдается, только придётся уточнить максимум.

Это по сути аналог обработки циклом в скрипте. Но у нас же макрос, а значит нас не заботит кол-во проходов регуляркой по тексту. И 100, и 200 отработают в долю секунды. Просто откопировать эту строку макроса столько раз, сколько нужно.

Этим соблюдается условие 3. Ведь, если я правильно понял, в каждом логе _|_начало_| будет одинаковым для всего лога. Т.о. мы не рискуем промахнуться.

После этой обработки можно и пустые строки удалить, и извлечь нужные блоки в отдельную вкладку, если помимо блоков там есть ещё ненужный текст.
_________________
Amo ergo sum


Last edited by yozhik on Mon Jul 20, 2026 14:02; edited 1 time in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group