Ce face RegExp.allMatches
allMatches(text) găsește toate potrivirile, de la stânga la dreapta, fără suprapuneri. Rezultatul este un Iterable leneș: căutarea se face pe măsură ce îl parcurgi cu for, map sau toList().
Cel mai des îl transformi imediat: .map((m) => m[0]!) pentru textele găsite, .length pentru numărul lor. Al doilea parametru, opțional, spune de la ce poziție începe căutarea. Dacă nu există nicio potrivire, colecția este goală.
Parametri
| Parametru | Descriere |
|---|---|
input |
Textul în care se caută. |
start |
Poziția de la care se caută. |
Ce returnează
Un Iterable<RegExpMatch>.
Exemple
Exemplul 1: Toate numerele dintr-un text
void main() {
final numar = RegExp(r'\d+');
var text = 'Am cumpărat 3 caiete cu 12 lei și 2 pixuri cu 5 lei';
var numere = numar.allMatches(text).map((m) => int.parse(m[0]!)).toList();
print(numere);
print('Potriviri: ${numar.allMatches(text).length}');
print(numar.allMatches('fără cifre').isEmpty);
}
Rezultat
[3, 12, 2, 5]
Potriviri: 4
true
Exemplul 2: Hashtag-uri și poziții
void main() {
final hashtag = RegExp(r'#(\w+)');
var postare = 'Weekend la munte! #Brasov #drumetie #toamna2026';
for (var m in hashtag.allMatches(postare)) {
print('${m[1]} (poziția ${m.start}-${m.end})');
}
}
Rezultat
Brasov (poziția 18-25)
drumetie (poziția 26-35)
toamna2026 (poziția 36-47)
Greșeli frecvente
- Parcurgi rezultatul de mai multe ori: de fiecare dată căutarea se face din nou. Dacă îl folosești des, salvează-l cu
toList().
Comenzi înrudite
RegExp.firstMatch: Caută prima potrivire a modelului în text și o returnează cu poziții și grupuri, sau null dacă nu există.RegExpMatch: Rezultatul unei căutări cu RegExp: textul găsit, grupurile din paranteze și pozițiile de început și sfârșit.String.allMatches: Găsește toate aparițiile unui text în alt text și le returnează ca obiecte Match, cu poziții.