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

Dart中如何移除字符串内所有包裹整数的方括号及内部内容

Dart 移除字符串中包裹整数的方括号及内容解决方案

问题根因

你之前使用的正则(?:_|[^\w\s])+仅会匹配非字母、数字、下划线、空白的字符,方括号会被匹配移除,但括号内的数字属于\w匹配范畴,所以会被保留,最终导致输出不符合预期。

修正后实现代码

String s = "Hello, world![1] i am 'foo' [100]";
// 匹配所有方括号包裹整数的结构并替换为空
print(s.replaceAll(RegExp(r'\[\d+\]'), ''));

正则规则说明

  • \[:转义匹配左方括号(方括号是正则特殊字符,必须加反斜杠转义才能匹配字面量)
  • \d+:匹配1个及以上的连续数字,覆盖任意长度的整数值场景
  • \]:转义匹配右方括号

运行输出

Hello, world! i am 'foo'

如果需要同时处理替换后可能出现的多余连续空格,可以再加一步空格规整处理:

String s = "Hello, world![1] i am 'foo' [100]";
String result = s.replaceAll(RegExp(r'\[\d+\]'), '').replaceAll(RegExp(r'\s+'), ' ').trim();
print(result);

内容的提问来源于stack exchange,提问作者DolDurma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:39:03