Dart 如何用替换字符串模式替换省道中的字符串

Dart 如何用替换字符串模式替换省道中的字符串,dart,Dart,在带有正则表达式的C#或javascript中,我可以将替换模式描述为如下字符串: var replaced = Regex.Replace(text, pattern, "$1AA$3"); void main() { final result = Utils.replace('the 2020 end', r'(\d+)', r'$1 year'); print(result); // the 2020 year end } class Utils { s

在带有正则表达式的C#或javascript中,我可以将替换模式描述为如下字符串:

var replaced = Regex.Replace(text, pattern, "$1AA$3");
void main() {
  final result = Utils.replace('the 2020 end', r'(\d+)', r'$1 year');
  print(result); // the 2020 year end
}

class Utils {
  static String replace(
          String inputText, String pattern, String strReplacePattern) =>
      inputText.replaceAllMapped(RegExp(pattern), (match) {
        var replacedString = strReplacePattern;
        for (var i = 0; i <= match.groupCount; i++) {
          replacedString = replacedString.replaceAll('\$$i', match.group(i)!);
        }
        return replacedString;
      });
}
在dart中,替换零件是一项功能

final newString = string.replaceAllMapped(RegExp(r'\b\w+\b'), (match) {
  return '"${match.group(0)}"';
});
问题是,我想编写一个util函数,将strReplacePattern作为字符串接收

Utils.replace(inputText, strPattern, strReplacePattern) { ... }
编码器将简单地以字符串模式输入替换部分,不需要提供匹配/替换功能,如何在dart中实现这样的功能

我希望替换部分是字符串模式,而不是回调函数


谢谢

我似乎找不到任何提供这种功能的软件包。但你可以试着自己做这样的:

var replaced = Regex.Replace(text, pattern, "$1AA$3");
void main() {
  final result = Utils.replace('the 2020 end', r'(\d+)', r'$1 year');
  print(result); // the 2020 year end
}

class Utils {
  static String replace(
          String inputText, String pattern, String strReplacePattern) =>
      inputText.replaceAllMapped(RegExp(pattern), (match) {
        var replacedString = strReplacePattern;
        for (var i = 0; i <= match.groupCount; i++) {
          replacedString = replacedString.replaceAll('\$$i', match.group(i)!);
        }
        return replacedString;
      });
}
void main(){
最终结果=Utils.replace(“2020年底”,r'(\d+),r'$1年”);
打印(结果);//2020年底
}
类Utils{
静态字符串替换(
字符串输入文本、字符串模式、字符串替换模式)=>
inputText.replaceAllMapped(RegExp(模式),(匹配){
var replacedString=strresplacepattern;

对于(var i=0;我可以给出一个使用此方法的示例和预期输出?var res=Utils.replace('2020年底','(\d+),'1年');预期:2020年底