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

如何在Dart中使用正则表达式提取字符串内的字母数字组合词?

Dart 正则提取字母数字ID解决方案

你使用的[a-zA-Z0-9]属于单字符匹配规则,每次仅能匹配1个字母或数字,无法匹配连续的多字符ID,因此无法得到预期结果。

完整实现代码

void main() {
  var string = "My id is 6aT7u. I used to play basketball and cricket.";
  // 正则规则:匹配同时包含字母和数字的独立字母数字串,自动过滤纯字母的普通单词
  RegExp idReg = RegExp(r'\b(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]+\b');
  // 提取第一个匹配结果
  String? targetId = idReg.firstMatch(string)?.group(0);
  print(targetId); // 输出结果:6aT7u
}

正则规则说明

  • \b:单词边界标识符,确保匹配到的是完整的独立单词,不会截取其他长单词的中间片段
  • (?=.*\d):正向预查规则,要求匹配的内容必须至少包含1个数字
  • (?=.*[a-zA-Z]):正向预查规则,要求匹配的内容必须至少包含1个字母
  • [a-zA-Z0-9]+:+是量词标识符,代表匹配1个及以上连续的大小写字母或数字

如果你的ID有固定长度要求,比如示例中是5位,可以将正则优化为r'\b(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{5}\b',进一步提升匹配精度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:36:05