replaceAllMapped与span元素匹配

时间:2019-02-27 14:08:25

标签: regex replace dart replaceall

我想将regExp之后的所有匹配字符串替换为span元素中的相同字符串。这可能吗? 我想做这样的事情: final text = message.replaceAllMapped(exp, (match) => '<span>exp, (match)</span>');

1 个答案:

答案 0 :(得分:1)

您可以像这样使用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是正则表达式引擎发现并传递给arrow方法的Match对象,其中m数组的第一项插入在<span>之间和</span>放在插值双引号字符串文字中。