Säännöllisten lausekkeiden käyttö

Dart:
Säännöllisten lausekkeiden käyttö

Miten:

Dart käyttää RegExp-luokkaa säännöllisiin lausekkeisiin. Tässä on perusesimerkki yksinkertaisen kaavan vastaamisesta merkkijonossa:

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Learning Dart programming is exciting.';

  if (pattern.hasMatch(text)) {
    print('Osuma löytyi!');
  } else {
    print('Ei osumia.');
  }
  // Tuloste: Osuma löytyi!
}

Osumien poimiminen merkkijonosta onnistuu allMatches-metodin avulla. Tämä metodi palauttaa iteroidun osumien kokoelman:

void main() {
  var pattern = RegExp(r'\b\w+\b');
  var text = 'Dart is awesome!';

  var matches = pattern.allMatches(text);
  for (final match in matches) {
    print(match.group(0)); // Tulostaa vastaavat alimerkkijonot.
  }
  // Tuloste:
  // Dart
  // is
  // awesome
}

Tekstin korvaaminen onnistuu käyttämällä replaceFirst tai replaceAll -metodeja:

void main() {
  var pattern = RegExp(r'\bDart\b');
  var text = 'Dart is not just a dart.';
  
  // Korvaa ensimmäisen esiintymän
  var modifiedText = text.replaceFirst(pattern, 'Flutter');
  print(modifiedText); 
  // Tuloste: Flutter is not just a dart.

  // Korvaa kaikki esiintymät
  modifiedText = text.replaceAll(pattern, 'Flutter');
  print(modifiedText);
  // Tuloste: Flutter is not just a flutter.
}

Merkkijonon jakaminen regex-kaavan mukaan on suoraviivaista käyttämällä split-metodia:

void main() {
  var pattern = RegExp(r'\s+'); // Vastaa mitä tahansa välilyöntimerkkiä
  var text = 'Dart is fun';

  var parts = text.split(pattern);
  print(parts); 
  // Tuloste: [Dart, is, fun]
}

Monimutkaisia jäsentämisiä tai valideja varten, joita Dartin RegExp ei suoraan tue, kannattaa harkita kolmannen osapuolen kirjastoja, mutta Dartin standardikirjasto on usein riittävä yleisimpiin regex-tehtäviin, korostaen sen hyödyllisyyttä ja monipuolisuutta säännöllisten lausekkeiden käsittelyssä.