【Flutter/Dart】文字列を正規表現でキャプチャして置き換える


したいこと

ほげほげ [[表示名|ページ名]] ふがふが のような文字列を、ほげほげ 表示名 ふがふがのようなプレーンなテキストに整形したい。

する方法

String text = "ほげほげ [[表示名|ページ名]] ふがふが";
text = text.replaceAllMapped(RegExp(r'\[{2}(.*?)\|.*?\]{2}'), (match) {
      return '${match.group(1)}';
    });
print(text);

"ほげほげ 表示名 ふがふが"

やったじゃん。

参考

https://stackoverflow.com/questions/62754405/flutter-dart-regex-replace-with-2

https://api.flutter.dev/flutter/dart-core/String/replaceAllMapped.html