Utiliser des expressions régulières

Dart:
Utiliser des expressions régulières

Comment faire :

Dart utilise la classe RegExp pour les expressions régulières. Voici un exemple de base pour correspondre à un motif simple au sein d’une chaîne :

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Apprendre la programmation Dart est excitant.';

  if (pattern.hasMatch(text)) {
    print('Correspondance trouvée !');
  } else {
    print('Aucune correspondance trouvée.');
  }
  // Sortie : Correspondance trouvée !
}

Pour extraire les correspondances d’une chaîne, vous pouvez utiliser la méthode allMatches. Cette méthode retourne un itérable de correspondances :

void main() {
  var pattern = RegExp(r'\b\w+\b');
  var text = 'Dart est génial !';

  var matches = pattern.allMatches(text);
  for (final match in matches) {
    print(match.group(0)); // Cela imprime les sous-chaînes correspondantes.
  }
  // Sortie :
  // Dart
  // est
  // génial
}

Remplacer du texte peut être réalisé à l’aide des méthodes replaceFirst ou replaceAll :

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Dart n'est pas juste un dart.';
  
  // Remplace la première occurrence
  var modifiedText = text.replaceFirst(pattern, 'Flutter');
  print(modifiedText); 
  // Sortie: Flutter n'est pas juste un dart.

  // Remplace toutes les occurrences
  modifiedText = text.replaceAll(pattern, 'Flutter');
  print(modifiedText);
  // Sortie: Flutter n'est pas juste un flutter.
}

Diviser une chaîne par un motif regex est simple en utilisant la méthode split :

void main() {
  var pattern = RegExp(r'\s+'); // Correspond à tout caractère d'espace blanc
  var text = 'Dart est amusant';

  var parts = text.split(pattern);
  print(parts); 
  // Sortie : [Dart, est, amusant]
}

Pour un parsing complexe ou des validations non directement supportées par RegExp de Dart, vous pourriez envisager des bibliothèques tierces, mais la bibliothèque standard de Dart est souvent suffisante pour les tâches regex communes, soulignant son utilité et sa polyvalence dans la gestion des expressions régulières.