Dart:
Använda reguljära uttryck
Hur:
Dart använder klassen RegExp
för reguljära uttryck. Här är ett grundläggande exempel för att matcha ett enkelt mönster inom en sträng:
void main() {
var pattern = RegExp(r'\bDart\b');
var text = 'Att lära sig Dart-programmering är spännande.';
if (pattern.hasMatch(text)) {
print('Matchning hittad!');
} else {
print('Ingen matchning hittad.');
}
// Utskrift: Matchning hittad!
}
För att extrahera matchningar från en sträng kan du använda metoden allMatches
. Denna metod returnerar en iterable av matchningar:
void main() {
var pattern = RegExp(r'\b\w+\b');
var text = 'Dart är fantastiskt!';
var matches = pattern.allMatches(text);
for (final match in matches) {
print(match.group(0)); // Detta skriver ut de matchade delsträngarna.
}
// Utskrift:
// Dart
// är
// fantastiskt
}
Att ersätta text kan uppnås med hjälp av metoderna replaceFirst
eller replaceAll
:
void main() {
var pattern = RegExp(r'\bDart\b');
var text = 'Dart är inte bara en dart.';
// Ersätt första förekomsten
var modifiedText = text.replaceFirst(pattern, 'Flutter');
print(modifiedText);
// Utskrift: Flutter är inte bara en dart.
// Ersätt alla förekomster
modifiedText = text.replaceAll(pattern, 'Flutter');
print(modifiedText);
// Utskrift: Flutter är inte bara en flutter.
}
Att dela upp en sträng med ett regex-mönster är enkelt med hjälp av metoden split
:
void main() {
var pattern = RegExp(r'\s+'); // Matchar alla vita tecken
var text = 'Dart är roligt';
var delar = text.split(pattern);
print(delar);
// Utskrift: [Dart, är, roligt]
}
För komplext parsande eller valideringar som inte stöds direkt av Darts RegExp
, kan du överväga tredjepartsbibliotek, men Darts standardbibliotek är ofta tillräckligt för vanliga regex-uppgifter, vilket betonar dess användbarhet och mångsidighet i hanteringen av reguljära uttryck.