Я хочу извлечь несколько блоков текста, используя регулярное выражение. Мое регулярное выражение получает правильное начало, но также возвращает все до конца моего файла.VBS regex extract mutiple blocks
Я использую:
re.ignorecase = true
re.multiline = false
re.global = true
re.pattern = "\balias\s=\sX[\s\S]{1,}end"
качестве примера формат файла:
Metadata Begin
Easting Begin
alias = X
projection = "geodetic"
datum = "GDA94"
Easting End
Northing Begin
alias = Y
projection = "geodetic"
datum = "GDA94"
Northing End
Metadata End
Я хочу, чтобы извлечь текст, начинающийся в alias
до следующего End
для каждого случая, так что я могу обрабатывать детали одного псевдонима за раз. например
alias = X
projection = "geodetic"
datum = "GDA94"
Easting End
Но это не получает первый End
после alias
. Вместо этого [\s\S]
сопоставляет все после первого alias
до конца файла. Но [\s\S]
- единственный трюк, который я могу представить, чтобы пройти мимо CrLf в конце каждой строки.
Есть ли регулярное выражение, которое соответствует первому End
через несколько строк?
Спасибо за обширный пример. – user1502755