Лучший способ взглянуть на что-то подобное - не слишком усложнять свое регулярное выражение - вы можете сделать его нечитаемым и запутанным, особенно если ваши навыки регулярных выражений не очень хороши. Сначала упростите вещи - разбейте документ на массив строк, выделите строку и затем выполните регулярное выражение. Выполнение вашего регулярного выражения на меньшей строке таким способом может оказаться намного быстрее для очень больших текстовых файлов.
// Assuming file is a FileSystemObject TextStream object:
var lines = file.ReadAll().split("\r\n"); // split based on Windows newline
// Arrays have zero-based indexes, so the line you need is your line number -1
var match = lines[4].match(myRegEx); // lines[4] is line 5 of the string
// If you need it to span multiple lines, extract and join the lines you need:
var specificLines = lines.splice(4, 6); // extract the 5th and 6th lines
specificLines.match(myRegEx); // don't forget the regex's /m modifier
splice
возвращает элементы массива от начального индекса до и исключая конечный индекс. Вы также можете предоставить параметр limit
методу split
, чтобы остановить разбиение после определенного числа совпадений. Это должно улучшить скорость работы с большим файлом, где нужные строки находятся не в конце.
Глоссарий: