当前位置: 首页 > 知识库问答 >
问题:

如何在Dart中匹配连续的Money like字符串序列?

怀齐智
2023-03-14

我有连续的类似货币的字符串序列,如:

"000000000012735"

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

"127.35"

连续货币类字符的输入序列字符串长度为15。

我只是尝试学习正则表达式,并尝试使用:

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

但它潜入字符串,不添加。在空白空间中:

value: 0000000000127 35

如我在Dart中所述,转换上述格式的正确正则表达式模式是什么?

共有1个答案

洪光霁
2023-03-14

你可以用

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

输出为127.35

正则表达式匹配

  • ^ - 字符串的开头
  • 0* - 零个或多个 0 个字符
  • (\d) - 组 1:一个或多个数字
  • (\d{2}) - 组 2:两位数字
  • $ - 字符串末尾。

请注意,由于预期会进行一次替换,因此无需使用replace eAllMapreplace eFirstMap就可以了。

 类似资料:
  • 我有像20210215和14032020这样的连续日期字符,我正在尝试将其转换为像2021.02.15和14.03.2020这样的日期字符串 我的第一个问题是连续的字符,它是2格式类型。喜欢: 我的第二个问题是在不更改格式的情况下将它们转换为日期字符串。比如: 当我搜索about regex时,找不到任何模式来将上面的{20210215}连续字符示例转换为date {2021.02.15}字符串。

  • 问题内容: 我有一个oracle表,该表具有名为system_access的列,该列具有以下数据: 基于上述示例数据,我不确定我的查询仅检索与“只读”和/或“只读”的确切单词匹配的记录 我不需要具有“只读(否)”,后接空格或方括号的记录,或“只读(请参阅mgr)”,其后或接续无空格和括号的记录。 因此,根据以上示例数据,我只会返回两行,即: 如前所述,只有与字符串“ Read Only”或“ re

  • 我在API文档中看到上有一个方法,但我不清楚参数需要什么。目前的需要是一个非常简单的直接向上的阿尔法比较。

  • 比如说我有这个: 我想做两件事: 1) 使其成为当且仅当用户准确键入<代码>时!测试和其他内容,它将在通道中打印出测试 2)使其成为如果用户键入首先后跟空格和至少一个其他字符串字符,它将打印出——例如:a)不会打印出任何东西,b)(后跟一个空格)不会打印出任何东西,c)不会打印出任何东西,d)不会打印出任何东西,但是e)将打印出, f)将打印出, g)将打印出, and h)将打印出等。 我只知道

  • 大家好,我正在尝试匹配以下正则表达式: 最少字符数:8 最大字符数:22 最小大写字母:1 最小小写字母:1 最小位数:2 允许使用特殊字符 第一个字符必须是字母 最大连续相同字符数:2 我已经设法完成了每一个条件,但连续的条件是: 遵循后正则表达式不超过2个相同的连续字符和a-Z和0-9,我发现不匹配精确字符的方法是: 但是我无法混合它们并获得完整的匹配结果。尝试在这里完成:https://re

  • 我试图检查字符串是否包含完全匹配。例如: String str="这是我的字符串,具有-Policy和-p" 我怎样才能做到以下几点: