yozhik

|
Posted: Mon Jul 20, 2026 13:58 Post subject: |
|
|
Batya
 Условия списком, для удобства 1. Обработка макросом.
2. Строки таблицы могут быть на отдельных строках, а могут быть склеены.
3. Начало табличного текста и начало каждой строки начинается с одинакового фрагмента, который меняется для каждого лога.
4. Количество строк всегда разное.
5. Количество склеенных строк заранее не известно.
6. Начальный фрагмент можно заменить, а можно и оставить.
Я бы сделал так. Разъединяю склеенные строки. Запускаю несколько раз следующую замену (найти/заменить):
| 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 |
|