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
相关产品推荐
相关产品推荐

