如何从dart中的字符串中提取字母数字单词?



我有一个像这样的字符串。

var string = "My id is 6aT7u. I used to play basketball and cricket.";

我必须使用正则表达式提取ID,即一个字母数字单词。在这种情况下,我必须提取6aT7u

我尝试了[a-zA-Z0-9],但这不起作用。

可以使用

b(?:d+[A-Za-z]|[A-Za-z]+d)[a-zA-Z0-9]*b

参见regex演示。细节:

  • b- a字边界
  • (?:d+[A-Za-z]|[A-Za-z]+d)-一个非捕获组匹配
    • d+[A-Za-z]-一个或多个数字,然后是一个ASCII字母
    • |-或
    • [A-Za-z]+d-一个或多个ASCII字母加一个数字
  • [a-zA-Z0-9]*- 0个或多个ASCII数字或字母
  • b-一个字边界。

在Dart中获得第一个匹配可以使用如下代码完成:

var string = "My id is 6aT7u. I used to play basketball and cricket.";
var rx = RegExp(r'b(?:d+[A-Za-z]|[A-Za-z]+d)[a-zA-Z0-9]*b');
var match = rx.firstMatch(string);
if (match != null) {
print(match.group(0));
}
// => 6aT7u

相关内容

  • 没有找到相关文章

最新更新