RegEx: перенос в строках после определённого количества символов

Greez

Client
Регистрация
05.02.2014
Сообщения
82
Благодарностей
29
Баллы
18
Стоит задача добавлять перенос через каждые 64 символа. Регулярка есть, но маленькая неприятность – создаёт дополнительные пустые строки. Да, эти строки можно чистить, но хотелось бы чтобы они не плодились.

Сколько я намучался со всякими \n \r $ комбинируя и иногда добавляя [ ] + так и не смог.

Использую замену RegEx:
(.{64}) на $1{-String.Enter-}

Пример того что надо обрабатывать (input data из PancakeSwap / Uniswap v2):
Код:
00000000000000000000000079b2bc95344efe31cb6a7b0cf8a843a5ee125dff0000000000000000000000005abf65c1d152244c6bd4ad0a5eb92db00e403bdb
000000000000000000000000fcc4536ea29408b75b10ea81e35db6a84a0cadd600000000000000000000000055d398326f99059ff775485246999027b3197955
00000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000009d1e2016758de5b77e0e1d3aea0e637f5a0ced40
00000000000000000000000026619fa1d4c957c58096bbbeca6588dcfb12e10900000000000000000000000055d398326f99059ff775485246999027b3197955
0000000000000000000000005740fee976dbbde2a93c6bd679d0f779936d1d4100000000000000000000000055d398326f99059ff775485246999027b3197955
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 462
Благодарностей
8 686
Баллы
113
Стоит задача добавлять перенос через каждые 64 символа. Регулярка есть, но маленькая неприятность – создаёт дополнительные пустые строки. Да, эти строки можно чистить, но хотелось бы чтобы они не плодились.

Сколько я намучался со всякими \n \r $ комбинируя и иногда добавляя [ ] + так и не смог.

Использую замену RegEx:
(.{64}) на $1{-String.Enter-}

Пример того что надо обрабатывать (input data из PancakeSwap / Uniswap v2):
Код:
00000000000000000000000079b2bc95344efe31cb6a7b0cf8a843a5ee125dff0000000000000000000000005abf65c1d152244c6bd4ad0a5eb92db00e403bdb
000000000000000000000000fcc4536ea29408b75b10ea81e35db6a84a0cadd600000000000000000000000055d398326f99059ff775485246999027b3197955
00000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000009d1e2016758de5b77e0e1d3aea0e637f5a0ced40
00000000000000000000000026619fa1d4c957c58096bbbeca6588dcfb12e10900000000000000000000000055d398326f99059ff775485246999027b3197955
0000000000000000000000005740fee976dbbde2a93c6bd679d0f779936d1d4100000000000000000000000055d398326f99059ff775485246999027b3197955
Двойные переводы строк получаются от того, что в исх. тексте уже есть переводы и они накладываются на те что еще добавляются. Нужно сначала слить строки в одну и потом производить замену.

103023


Результат:

103024


Либо, как еще один вариант, если не склеивать строки перед обработкой - это потом заменять двойной перевод строки {-String.Enter-}{-String.Enter-} на одинарный {-String.Enter-}.
 
  • Спасибо
Реакции: Greez

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)