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ä.