dart 使用正则表达式从flutter中的字符串中提取子字符串

xzv2uavs  于 2023-04-09  发布在  Flutter
关注(0)|答案(2)|浏览(241)

我想在flutter中使用正则表达式从字符串中提取子字符串。
例如:如果字符串是"HI hello @shemeer how are you @nijin",则预期结果将是[shemeer,nijin]
输入:String s= "HI hello @shemeer how are you @nijin"
输出:output=["shemeer","nijin"]
有人知道吗,请帮帮我

gg0vcinb

gg0vcinb1#

您可以将字符串拆分为单词,然后查找@并基于它生成列表。

final names = data
        .split(" ")
        .where((element) => element.startsWith("@"))
        .map((e) => e.substring(1))
        .toList();

或者使用allMatchesRegExp(r'@\w+'),就像pskink在评论中提到的那样。

final names = RegExp(r'@\w+')
    .allMatches(data)
    .map((e) => e.group(0)!.substring(1))
    .toList();
z2acfund

z2acfund2#

你可以尝试使用这个正则表达式模式:(?<=@)\w+

RegExp exp = RegExp(r'(?<=@)(\w+)');
String str = 'HI hello @shemeer how are you @nijin';
Iterable<RegExpMatch> output = exp.allMatches(str);
for (final m in output) {
  print(m[0]);
}

相关问题