如何匹配连续的钱像字符串在Dart序列?



我有一个像字符一样的连续货币序列:

"000000000012735"

和我想使用正则表达式来覆盖连续的货币序列,如字符串到货币类型或在Dart双精度,如:

"127.35"

输入连续的Money类字符序列长度为15。

我只是想学习正则表达式,我试着使用:

final value =  "000000000012735".replaceAllMapped(RegExp(r'.{13}'), (match) => "${match.group(0)} ");
print('value: $value');

,但它插入字符串,不添加。

value: 0000000000127 35

什么是正确的正则表达式模式如我在Dart?

可以使用

final text = '000000000012735';
print(text.replaceFirstMapped(RegExp(r'^0*(d+)(d{2})$'), (Match m) => 
"${m[1]}.${m[2]}"));

输出为127.35

正则表达式匹配

  • ^-字符串
  • 起始
  • 0*- 0个或多个0字符
  • (d+)-组1:一个或多个数字
  • (d{2})-组2:两位
  • $-字符串结束

请注意,由于预期有一个替换,因此不需要使用replaceAllMapped,replaceFirstMapped就可以了。

最新更新