Dart:
Utilizzo di espressioni regolari
Come fare:
Dart utilizza la classe RegExp
per le espressioni regolari. Ecco un esempio base per trovare un semplice modello all’interno di una stringa:
void main() {
var pattern = RegExp(r'\bDart\b');
var text = 'Imparare la programmazione Dart è eccitante.';
if (pattern.hasMatch(text)) {
print('Corrispondenza trovata!');
} else {
print('Nessuna corrispondenza trovata.');
}
// Output: Corrispondenza trovata!
}
Per estrarre le corrispondenze da una stringa, puoi usare il metodo allMatches
. Questo metodo restituisce un iterabile di corrispondenze:
void main() {
var pattern = RegExp(r'\b\w+\b');
var text = 'Dart è fantastico!';
var matches = pattern.allMatches(text);
for (final match in matches) {
print(match.group(0)); // Questo stampa le sottostringhe corrispondenti.
}
// Output:
// Dart
// è
// fantastico
}
Sostituire il testo può essere ottenuto utilizzando i metodi replaceFirst
o replaceAll
:
void main() {
var pattern = RegExp(r'\bDart\b');
var text = 'Dart non è solo un dardo.';
// Sostituisci la prima occorrenza
var modifiedText = text.replaceFirst(pattern, 'Flutter');
print(modifiedText);
// Output: Flutter non è solo un dardo.
// Sostituisci tutte le occorrenze
modifiedText = text.replaceAll(pattern, 'Flutter');
print(modifiedText);
// Output: Flutter non è solo un flutter.
}
Dividere una stringa mediante un modello regex è semplice usando il metodo split
:
void main() {
var pattern = RegExp(r'\s+'); // Corrisponde a qualsiasi carattere di spazio bianco
var text = 'Dart è divertente';
var parts = text.split(pattern);
print(parts);
// Output: [Dart, è, divertente]
}
Per analisi complesse o validazioni non supportate direttamente dalla RegExp
di Dart, potresti prendere in considerazione librerie di terze parti, ma la libreria standard di Dart è spesso sufficiente per compiti comuni con le regex, sottolineando la sua utilità e versatilità nell’uso delle espressioni regolari.