Как привести в порядок строки Regex в Flutter Dart? - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь получить записи табличных чисел 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() не дает выходных данных в порядок и находит некоторые последние номера строк, прежде чем он должен найти первые. Кто-нибудь может что-то предложить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...