You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Dart中提取{{..}}格式模板标签的实现方案

基于正则表达式提取Dart字符串中的模板标签

实现思路

用正则匹配{{与}}包裹的内容,同时自动忽略标签内的首尾空白:

  • 正则表达式:{{\s*(.*?)\s*}}
    • {{:匹配起始双大括号
    • \s*:匹配0个或多个空白字符,处理标签内的首尾空格
    • (.*?):非贪婪捕获标签内的实际内容
    • \s*:匹配标签末尾的空白字符
    • }}:匹配结束双大括号

Dart代码实现

import 'dart:core';

List<String> extractTemplateTags(String input) {
  final RegExp tagRegex = RegExp(r'{{\s*(.*?)\s*}}');
  final matches = tagRegex.allMatches(input);
  return matches.map((match) => match.group(1)!.trim()).toList();
}

void main() {
  // 测试示例1
  String str1 = "Hello {{user}}, your reference is {{ref}}";
  print(extractTemplateTags(str1)); // 输出: [user, ref]
  
  // 测试示例2(含空白)
  String str2 = "Hello {{ user }}, your code is {{  code123  }}";
  print(extractTemplateTags(str2)); // 输出: [user, code123]
}

说明

  • RegExp.allMatches会遍历字符串,找出所有符合规则的标签
  • match.group(1)获取捕获到的标签内容,再通过trim()彻底清除首尾空白(双重保障避免遗漏)
  • 最终返回的List<String>包含所有提取出的纯净标签内容

内容的提问来源于stack exchange,提问作者Rajendra A Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:30:56