Nit*_*euq 6 regex dart flutter
我有一个随机日期列表,格式如下:
String x ="Text(\"key:[2020-08-23 22:22, 2020-08-22 10:11, 2020-02-22 12:14]\"),"
Run Code Online (Sandbox Code Playgroud)
我可以使用\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}正则表达式来匹配中的所有日期x:
RegExp regExp79 = new RegExp(
r'\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}',
);
var match79 = regExp79.allMatches("$x");
var mylistdate = match79;
Run Code Online (Sandbox Code Playgroud)
所以,比赛是:
match 1 = 2020-08-22 22:22
match 2 = 2020-08-22 10:11
match 3 = 2020-02-22 12:14
Run Code Online (Sandbox Code Playgroud)
我想将 转换Iterable<RegExpMatch>为字符串列表,以便列表的输出如下所示:
[2020-08-22 22:22, 2020-08-22 10:11, 2020-02-22 12:14]
Run Code Online (Sandbox Code Playgroud)
Wik*_*żew 10
该allMatches方法返回一个Iterable<RegExpMatch>值。它包含所有RegExpMatch包含有关匹配的一些详细信息的对象。您需要.group(0)在每个RegExpMatch对象上调用该方法来获取匹配的字符串值。
所以,你需要.map结果:
your_regex.allMatches(x).map((z) => z.group(0)).toList()
Run Code Online (Sandbox Code Playgroud)
代码:
String x ="Text(\"key:[2020-08-23 22:22, 2020-08-22 10:11, 2020-02-22 12:14]\"),";
RegExp regExp79 = new RegExp(r'\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}');
var mylistdate = regExp79.allMatches(x).map((z) => z.group(0)).toList();
print(mylistdate);
Run Code Online (Sandbox Code Playgroud)
输出:
[2020-08-23 22:22, 2020-08-22 10:11, 2020-02-22 12:14]
Run Code Online (Sandbox Code Playgroud)