在Dart中获取与RegExp匹配的所有子字符串的最佳方法

bluesky1年前 ⋅ 250 阅读

ChatGPT的回答仅作参考:

在Dart中,可以使用RegExp的allMatches方法来获取与正则表达式匹配的所有子字符串。该方法返回一个迭代器,可以使用for循环遍历所有匹配项,并使用Match对象的group方法获取每个匹配项的子字符串。

例如,假设我们要从字符串中提取所有数字,可以使用以下代码:

```
String text = "abc123def456ghi789";
RegExp regex = RegExp(r'\d+');
Iterable<Match> matches = regex.allMatches(text);
List<String> numbers = [];
for (Match match in matches) {
  numbers.add(match.group(0));
}
print(numbers); // ["123", "456", "789"]
```

在上面的代码中,我们首先定义了一个正则表达式,该表达式匹配一个或多个数字。然后,我们使用allMatches方法获取所有匹配项的迭代器,并使用for循环遍历每个匹配项。在循环中,我们使用Match对象的group方法获取每个匹配项的子字符串,并将其添加到一个列表中。最后,我们打印出列表中的所有数字。

全部评论: 0

    相关推荐