如何在Dart中提取字符串中形如{xxx}的内容为字符串列表?
在Dart中提取字符串中所有{字符串}格式的内容
完全可行,用正则表达式就能轻松实现这个需求,以下是具体的实现代码:
void main() { String hello = "test test {Brian} have you {Adam} always and {Corner} always"; // 定义匹配{...}格式的正则表达式 RegExp pattern = RegExp(r'\{[^{}]+\}'); // 提取所有匹配项并转为字符串列表 List<String> data = pattern.allMatches(hello).map((match) => match.group(0)!).toList(); print(data); // 输出结果: [{Brian}, {Adam}, {Corner}] }
关键说明:
- 正则表达式
r'\{[^{}]+\}'的作用:\{:匹配字面量{(正则中{是特殊字符,需要用反斜杠转义)[^{}]+:匹配一个或多个**不是{和}**的字符,避免匹配嵌套的花括号(如果你的场景里没有嵌套需求,这个规则完全够用)\}:匹配字面量}
allMatches方法会返回字符串中所有符合正则规则的匹配结果,再通过map把每个匹配项的完整内容(group(0))提取出来,最后转成列表即可。
内容的提问来源于stack exchange,提问作者abiyyu hakam
相关产品推荐
相关产品推荐

