我有一个像字符一样的连续货币序列:
"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
就可以了。