Тема: VBA: Ограничения на работу с регулярными выражениями RegExp
Столкнулся с проблемой, оказывается объект RegExp (точнее его методы) имеют ограничения на размер обрабатываемых данных, не замечал до тех пор, пока на обработку не попал ХМЛ файл размером 120 мегабайт.
Не нашел в сети параметров ограничения и обращаюсь к сообществу за подсказкой. Важно то, что не желательно разбивать обрабатываемый файл на куски меньшего размера.
Для примера немного кода и выдаваемых ошибок здесь в переменной strzap живет 120 млн букв и цифр ))
Dim myRegExp As New RegExp
Dim aMatch As Match
Dim colMatches As MatchCollection
myRegExp.Multiline = True
myRegExp.Global = True
myRegExp.IgnoreCase = True
myRegExp.Pattern = "\r\n"
strt = myRegExp.Replace(strzap, "")
strzap = strt
Выдает ошибку "Out of memory".
myRegExp.Pattern = "<ZAP>(.*?)</ZAP>"
Set colMatches = myRegExp.Execute(strzap)
For Each aMatch In colMatches
strNZap = aMatch.SubMatches(0)
...
Next aMatch
Цикл не выполняется, поскольку коллекция получается пустой. хотя реально такие теги есть причем их несколько десятков тысяч.