2013-04-09 29 views
11

Đây có thể là câu hỏi ngớ ngẩn, nhưng tôi không thể tìm thấy bất kỳ tham chiếu nào về cách thay thế văn bản sau khi được so khớp bằng cách sử dụng dart 's RegExp.phi tiêu như thế nào để phù hợp và sau đó thay thế một regexp

Vì vậy, về cơ bản những gì tôi đang cố gắng làm là như thế này: Tôi có một văn bản như thế này

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

Tôi muốn phù hợp với chuỗi sử dụng mô hình này \b\w+\b sau đó thay thế bằng "$&" này, sau đó tôi mong đợi đầu ra là như thế này:

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

Vì vậy, sau đó tôi có thể sử dụng dart:json 's parse để biến điều đó với một Map.

Có lẽ tôi bỏ lỡ điều gì đó, quan tâm để cho tôi một số con trỏ?

Trả lời

11

Bạn phải sử dụng 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); 

Công thức này được tài trợ bởi Dart Cookbook.

+0

Cảm ơn bạn! hoạt động như một sự quyến rũ, và cảm ơn bạn một lần nữa vì đã chỉ ra cuốn sách dạy nấu ăn đó, không biết có một cuốn sách nào. –

Các vấn đề liên quan