Flutter -如何将文本(包含“id”)替换为id标题?

i1icjdpr  于 2023-01-14  发布在  Flutter
关注(0)|答案(1)|浏览(134)

我有这样的文字:
预测者强烈反对\n\n将发生其他事件\n\n示例:-\n\n#:hashtag/424 \n#:hashtag/2818“,
我需要获取424和2818(它们是id),并查找这些id的标题,然后将#:hashtag/424替换为#Title1
我该怎么处理字符串呢?

n9vozmp4

n9vozmp41#

您可以使用如下正则表达式:

RegExp exp = RegExp(r'#:hashtag\/(\d+)');
  String test = "Forecaster Strongly disagree \n\nSomething else is going to happen\n\nExample:-\n\n#:hashtag/424 \n#:hashtag/2818";

  final matches = exp.allMatches(test);
  
  if(matches.isNotEmpty){
    print (matches.first[0]!.split('/').last);
  }
//prints 424

根据您对输入字符串的期望,可能需要进行一些附加的空检查
要替换ID,可以使用replaceAllMapped方法,如下所示:

test.replaceAllMapped(exp, (match) => match[0]!.split('/').first + '/#Title1');

相关问题