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: Sat Jul 18, 2026 15:26    Post subject: Reply with quote

Orion9 wrote:
Видимо, это я неправильно задачу понял.

Нет, это я её неправильно понял, точнее поторопился и просто не вчитался.

Ограничение регулярок в том, что для замены нужно знать точное кол-во совпадений. Т.е. я могу найти неопределённое число совпадений, но если мне нужно каждое из них заменить, то в замене я должен сослаться на каждое совпадение по его номеру, иначе никак.

Поэтому к Бате вопрос: этот шаблон стабильный или варьируется?

Code:
_|_123_|_124_|_125_|_123_|_126_|_127
_|_123_|_128_|_129

другими словами

(искомое) ... (искомое) ...
(искомое) ...


Т.е. «искомое» всегда ли 2жды в первой строке и 1жды во второй? Если да, то поможет вот это:

Code:
Найти:
(?m-s)^(_\|_\d+_\|)(.+?)\1(.+?\r\n)\1
Заменить:
\r\n\2\r\n\3\r\n


Если нет, то решение — перечислить в макросе по очереди все возможные варианты. Например:

Code:
Для:
(искомое) ... (искомое) ... (искомое) ...
(искомое) ... (искомое) ...

Найти/Заменить:
(?m-s)^(_\|_\d+_\|)(.+?)\1(.+?)\1(.+?\r\n)\1(.+?)\1
\r\n\2\r\n\3\r\n\4\r\n\5\r\n

Для:
(искомое) ... (искомое) ... (искомое) ...
(искомое) ...

Найти/Заменить:
(?m-s)^(_\|_\d+_\|)(.+?)\1(.+?)\1(.+?\r\n)\1
\r\n\2\r\n\3\r\n\4\r\n

Для:
(искомое) ... (искомое) ...
(искомое) ...

Найти/Заменить:
(?m-s)^(_\|_\d+_\|)(.+?)\1(.+?\r\n)\1
\r\n\2\r\n\3\r\n

Для:
(искомое) ...
(искомое) ...

Найти/Заменить:
(?m-s)^(_\|_\d+_\|)(.+?\r\n)\1
\r\n\2\r\n

и т.п.


Ну, или скрипт писать, да, программно.
_________________
Amo ergo sum
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group