2013-04-09 8 views
11

Questa potrebbe essere una domanda stupida, ma non riesco a trovare alcun riferimento su come sostituire un testo dopo essere stato abbinato da un'espressione regolare utilizzando dart di RegExp.dart come abbinare e quindi sostituire un regexp

Quindi, in pratica quello che sto cercando di fare è come questo: Ho un testo come questo

'{name : aName, hobby : [fishing, playing_guitar]}' 

voglio corrispondere alla stringa utilizzando questo schema \b\w+\b quindi sostituire con questo "$&", quindi mi aspetto l'uscita è come questo:

'{"name" : "aName", "hobby" : ["fishing", "playing_guitar"]}' 

Così più tardi posso usare dart:json s' parse a sua volta che a un Map.

Forse mi manca qualcosa, mi importa di darmi un puntatore?

risposta

11

È necessario utilizzare String.replaceAllMapped.

final string = '{name : aName, hobby : [fishing, playing_guitar]}'; 
final newString = string.replaceAllMapped(new RegExp(r'\b\w+\b'), (match) { 
    return '"${match.group(0)}"'; 
}); 
print(newString); 

Questa ricetta è sponsorizzato da Dart Cookbook.

+0

Grazie! funziona come un incantesimo, e grazie ancora per aver indicato quel ricettario, non so che ce n'è uno. –

Problemi correlati