Використання регулярних виразів

Dart:
Використання регулярних виразів

Як це робити:

Dart використовує клас RegExp для регулярних виразів. Ось базовий приклад пошуку за простим шаблоном у рядку:

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Вивчення програмування на Dart захоплює.';

  if (pattern.hasMatch(text)) {
    print('Збіг знайдено!');
  } else {
    print('Збігів не знайдено.');
  }
  // Вивід: Збіг знайдено!
}

Щоб витягти збіги з рядка, можна скористатися методом allMatches. Цей метод повертає ітерабельну колекцію збігів:

void main() {
  var pattern = RegExp(r'\b\w+\b');
  var text = 'Dart круто!';

  var matches = pattern.allMatches(text);
  for (final match in matches) {
    print(match.group(0)); // Це виводить відповідні підрядки.
  }
  // Вивід:
  // Dart
  // круто
}

Замінити текст можна, використовуючи методи replaceFirst або replaceAll:

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Dart не просто дротик.';

  // Заміна першого збігу
  var modifiedText = text.replaceFirst(pattern, 'Flutter');
  print(modifiedText); 
  // Вивід: Flutter не просто дротик.

  // Заміна всіх збігів
  modifiedText = text.replaceAll(pattern, 'Flutter');
  print(modifiedText);
  // Вивід: Flutter не просто flutter.
}

Розділення рядка за допомогою регекс-шаблону просте з методом split:

void main() {
  var pattern = RegExp(r'\s+'); // Відповідає будь-якому символу пробілу
  var text = 'Dart весело';

  var parts = text.split(pattern);
  print(parts); 
  // Вивід: [Dart, весело]
}

Для складного парсингу чи валідацій, які не підтримуються безпосередньо регексами в Dart, можна розглянути використання сторонніх бібліотек, але стандартна бібліотека Dart зазвичай є достатньою для поширених регекс-задач, підкреслюючи її корисність і універсальність у роботі з регулярними виразами.