Regex 是否有任何方法可以使用正则表达式从flatter/Dart中的磁铁链接或复杂字符串获取大小信息(MB,GB)?

Regex 是否有任何方法可以使用正则表达式从flatter/Dart中的磁铁链接或复杂字符串获取大小信息(MB,GB)?,regex,flutter,dart,Regex,Flutter,Dart,我正在做一个个人项目,我想从磁铁链接中获取文件大小信息 问题: 我想从下面的字符串中获得7.6GB 0-%20Giri%20(2004)%5泰米尔%201080p%20HD%20AVC%20-%20x264%20-%207.6GB%5d。mkv&tr=http%3a%2f%2fbt4 顺便说一句,我对Regex是新手 感谢您的任何帮助。(我在谷歌上搜索了解决方案,没有运气) 编辑: 感谢Vishal Singh&Stackoverflow 这是我在dartpad中尝试的工作代码♥️ , 以防有

我正在做一个个人项目,我想从磁铁链接中获取文件大小信息

问题: 我想从下面的字符串中获得7.6GB

0-%20Giri%20(2004)%5泰米尔%201080p%20HD%20AVC%20-%20x264%20-%207.6GB%5d。mkv&tr=http%3a%2f%2fbt4
顺便说一句,我对Regex是新手

感谢您的任何帮助。(我在谷歌上搜索了解决方案,没有运气)

编辑: 感谢Vishal Singh&Stackoverflow

这是我在dartpad中尝试的工作代码♥️ , 以防有人用飞镖寻找答案

void main() {
  RegExp exp = new RegExp(r"[0-9]+(\.[0-9])?(GB|MB|gb|mb)");
  String str =Uri.decodeComponent(
      "0-%20Giri%20(2004)%5bTamil%201080p%20HD%20AVC%20-%20x264%20-%207.6GB%5d.mkv&tr=http%3a%2f%2fbt4");
  String match = exp.stringMatch(str);

  print(match);
}
输出:
7.6GB

regex:
[0-9]+(\[0-9]{1,2})?(GB | MB | GB | MB)

我没有意识到这是一个颤振/飞镖问题,并且已经开发了一个python解决方案。因此,我发布了python解决方案

import re
from urllib.parse import unquote

magnet = "0-%20Giri%20(2004)%5bTamil%201080p%20HD%20AVC%20-%20x264%20-%207.6GB%5d.mkv&tr=http%3a%2f%2fbt4"

size = re.search(r"[0-9]+(\.[0-9]{1,2})?(GB|MB|gb|mb)", unquote(magnet)).group()

print(size)
输出:
7.6GB

感谢您在python中的示例。我会尝试在dart中做同样的事情。将在帖子运行时更新帖子。但是,我以前很少试过这样的。达特对我来说还是个新手。所以,如果有人向我推荐dart的等效代码,那就太好了。