У меня есть текстовый файл с несколькими пунктами (блоки текста), как следующее:Regex заменить текст без использования просмотра назад
SAMPLE
ITEM_ID sample_id_0000028
blah blah
ABCD <--- do NOT remove
blah blah blah
blah blah
blah
SAMPLE_END
SAMPLE
ITEM_ID sample_id_0000033
other text
more text
ABCD <--- Remove this
more text
SAMPLE_END
SAMPLE
ITEM_ID sample_id_00041
ABCD <--- do NOT remove
blah blah blah
blah
SAMPLE_END
Я хочу, чтобы заменить/удалить экземпляр ABCD
, что происходит в элементе с ID sample_id_0000033
. Проблема в том, что в файле есть другие экземпляры ABCD
, которые я хочу оставить в покое. Кроме того, количество строк между ITEM_ID
и ABCD
варьируется от элемента к элементу, и возможно, что ABCD
не будет найдено в указанном элементе.
Я должен управлять файлом через vbscript в VBA. Я решил, что я буду использовать Regex для этого, но VBA не поддерживает регулярные выражения с lookbehind. Есть ли шаблон, который можно использовать для достижения этого с отрицательным взглядом или чем-то более простым?
Я бы выполнил регулярное выражение на строке, определенной как textfile.ReadAll
, где textfile
- это TextStream.
Первый работал для меня. Спасибо! Однако любой шаблон, включающий '\ n', не соответствует ожидаемому в VBA. – Excellll
@Excellll: Да, \ n необходимо заменить на \ r \ n (CRLF - это естественная новая строка в окнах). Я отредактирую свой пост. –