gpt4 book ai didi

regex - Flutter/Dart:Regex用$ 2代替吗?

转载 作者:行者123 更新时间:2023-12-03 04:43:13 25 4
gpt4 key购买 nike

我试图使用Dart中的replaceall regex方法仅从Facebook图片URL中获取ID号。在下面的代码中,我应该使用什么代替$ 2?我需要的ID号在“asid =”和“&height”之间。

void main() {
String faceavatar = 'https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=10153806530149154&height=50&width=50&ext=1596623207&hash=AeSi1yDvk8TCqZql';
String currentavatar = faceavatar.replaceAll(RegExp('(.*asid=)(\d*)height.*'), $2;
print(currentavatar);
}

最佳答案

您可以尝试:

.*?\basid\b=(\d+).*
以上正则表达式的解释:
  • .*? -懒惰的匹配asid之前除换行符以外的所有内容。
  • \basid\b -从字面上匹配asid\b表示单词边界。
  • = -从字面上匹配=
  • (\d+) -一次或多次表示第一个捕获组匹配数字。
  • .* -贪婪除换行零次或多次外,其他所有内容。
  • $1 -对于替换零件,您可以使用$1match.group(1)

  • Pictorial Representation
    您可以在 here.中找到上述正则表达式的演示
    dart中的示例实现:
    void main() {
    String faceavatar = 'https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=10153806530149154&height=50&width=50&ext=1596623207&hash=AeSi1yDvk8TCqZql';
    String currentavatar = faceavatar.replaceAllMapped(RegExp(r'.*?\basid\b=(\d+).*'), (match) {
    return '${match.group(1)}';
    });
    print(currentavatar);
    }
    您可以在 here.中找到上述实现的示例运行

    关于regex - Flutter/Dart:Regex用$ 2代替吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62754405/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com