Я пытаюсь получить записи табличных чисел c с веб-сайта, используя Regex в Flutter Dart. Я могу получить записи числовых c успешно, но проблема в том, что я не получаю записи по порядку. Большинство записей в порядке, но лишь немногие из них перемешаны, что делает невозможным отслеживание по индексу.
Я мог бы написать регулярное выражение для каждой отдельной строки и извлечь числа таким образом, но строк слишком много и, следовательно, это неосуществимо.
Вот код, который я использую:
RegExp quickFactsRegex = new RegExp(r'<\/svg>[\s]*[\d]*[,]*[\d]*[,]*[\d]*<\/p>'); // Regex for fetching the element consisting of the number
Iterable<Match> quickFactsMatches = await quickFactsRegex.allMatches(response.body);
RegExp extractNumberRegex = new RegExp(r'[\d]*[,]*[\d]*[,]*[\d]'); // Regex for fetching any number from above derived regex
List quickFactsList = [];
quickFactsMatches.toList().forEach((item) { // Loop to get all numbers from quickFactsMatches
var numberMatched = extractNumberRegex.stringMatch(item[0]);
quickFactsList.add(numberMatched);
});
print('Quick facts : ');
print(quickFactsList);
Мое предположение о проблеме того, почему это происходит, заключается в том, что allMatches()
не дает выходных данных в порядок и находит некоторые последние номера строк, прежде чем он должен найти первые. Кто-нибудь может что-то предложить?