Освоение извлечения чисел в Dart с помощью регулярных выражений

В этой статье блога мы погрузимся в мир программирования на Dart и рассмотрим различные методы извлечения чисел из строк с помощью регулярных выражений. Мы воспользуемся разговорным подходом и предоставим вам примеры кода, которые помогут вам овладеть этим важным навыком. Итак, начнем!

Метод 1: использование RegExp
Dart предоставляет класс RegExp, который позволяет нам работать с регулярными выражениями. Чтобы извлечь из строки только числа, мы можем использовать метод allMatchesдля RegExpвместе с шаблоном для чисел.

void extractNumbers(String text) {
  RegExp numberPattern = RegExp(r'\d+');
  Iterable<Match> matches = numberPattern.allMatches(text);

  for (Match match in matches) {
    print(match.group(0));
  }
}
void main() {
  String text = "I have 10 apples and 5 oranges.";
  extractNumbers(text);
}

Метод 2: использование разделения и isDigit
Другой подход – разделить строку на нецифровые символы, а затем проверить, состоит ли каждая результирующая подстрока только из цифр, используя метод isDigitp>

void extractNumbers(String text) {
  List<String> words = text.split(RegExp(r'\D+'));

  for (String word in words) {
    if (word.isNotEmpty && word[0].isDigit) {
      print(word);
    }
  }
}
void main() {
  String text = "I have 10 apples and 5 oranges.";
  extractNumbers(text);
}

Метод 3: использование replaceAll и RegExp
Мы также можем использовать метод replaceAllвместе с шаблоном регулярного выражения, чтобы заменить все нецифровые символы пустой строкой, эффективно извлекая числа.

void extractNumbers(String text) {
  String numbersOnly = text.replaceAll(RegExp(r'\D+'), '');
  print(numbersOnly);
}
void main() {
  String text = "I have 10 apples and 5 oranges.";
  extractNumbers(text);
}

В этой статье мы рассмотрели три различных метода извлечения чисел из строк в Dart с помощью регулярных выражений. Мы рассмотрели использование RegExpс allMatches, разделение строки и использование isDigitи замену нецифровых символов на 11. Теперь у вас есть инструменты для эффективного извлечения чисел из строк. Приятного кодирования!