replaceAllMapped соответствует элементам span - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу заменить все совпадающие строки после regExp теми же строками в элементах span.Это возможно?Я хочу сделать что-то подобное: final text = message.replaceAllMapped(exp, (match) => '<span>exp, (match)</span>');

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете использовать String#replaceAllMapped следующим образом:

final exp = new RegExp(r'\d+(?:\.\d+)?'); 
String message = 'test 40.40 test 20.20'; 
final text = message.replaceAllMapped(exp, 
        (Match m) => "<span>${m[0]}</span>");
print(text);

Вывод: test <span>40.40</span> test <span>20.20</span>

Здесь m - это Match объект, которыйМеханизм регулярных выражений находит и передает метод стрелки, где первый элемент в массиве m вставляется между <span> и </span> внутри интерполированного строкового литерала в двойных кавычках.

...