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

Dart中如何移除字符串中的括号字符

Dart移除字符串中括号的解决方案

你原来的方案失效有三个核心原因:

  • Dart正则默认不支持\p{P}这类Unicode属性类语法,需要额外开启配置
  • Dart字符串是不可变类型,replaceAll方法不会修改原字符串,会返回处理后的新字符串,必须用变量接收才会生效
  • 你的初始字符串定义存在语法错误,带括号的内容需要包裹在引号内才是合法字符串格式,且num是Dart内置的数字类型关键字,不建议作为变量名使用

最优解决方案(直接匹配括号,性能最高)

直接匹配(和)两种字符替换即可,不需要依赖Unicode标点匹配规则:

// 正确定义带括号的字符串
String numStr = "(85)";
// 匹配所有()替换为空
String processedStr = numStr.replaceAll(RegExp(r'[()]'), "");
print(processedStr); // 输出结果:85

通用全标点移除方案

如果你的需求是移除所有标点符号而非仅括号,需要给正则开启Unicode支持:

String numStr = "(85)";
// 增加unicode: true参数启用Unicode属性类支持
String processedStr = numStr.replaceAll(RegExp(r'\p{P}', unicode: true), "");
print(processedStr); // 输出结果:85

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 17:54:03