gpt4 book ai didi

regex - 正则表达式在imap响应中获取文件的base64字符串

转载 作者:行者123 更新时间:2023-12-03 04:20:01 24 4
gpt4 key购买 nike

我需要解析imap响应以获取文件的base64字符串。
该字符串是这样的:

--------------A5B0A8B4F69F8BD959B758D0
Content-Type: application/pdf;
name="Myfile.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Myfile.pdf"

JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlL1hPYmplY3QvQ29sb3JT
ZWI0ODRmNDE1ZDE0YmIyZmU2YjAzZDMzNjU+PGU5MDFiZTMzY2FlOTY4ZDM2
NmFmOGNhOTUxNTE0Nzk0Pl0vSW5mbyAyMyAwIFIvU2l6ZSAyND4+CnN0YXJ0
eHJlZgoyMzg2NgolJUVPRgo=

--------------A5B0A8B4F69F8BD959B758D0--
我需要在 filename="Myfile.pdf"之后(可能不包括空格)以及在 =之后的新行之前获取任何内容
我正在尝试使用此正则表达式,但未成功:
(?<=filename="Myfile\.pdf")(.*)(?=\r\n)
其实我不确定base64字符串中是否有空格或换行符,我认为。

最佳答案

您可以使用

filename="Myfile\.pdf"\s*(\S.*(?:\n\S.*)*)
参见 regex demo详细信息:
  • filename="Myfile\.pdf"-一个filename="Myfile.pdf"字符串
  • \s*-0个或多个空格
  • (\S.*(?:\n\S.*)*)-组1:
  • \S-一个非空格char
  • .*-其余行
  • (?:\n\S.*)*-0或多个不以空格开头的行。


  • Dart / Flutter代码以获取第一个匹配项:
    final base64str = '--------------A5B0A8B4F69F8BD959B758D0\nContent-Type: application/pdf;\n name="Myfile.pdf"\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment;\n\nfilename="Myfile.pdf"\n\nJVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlL1hPYmplY3QvQ29sb3JT\nZWI0ODRmNDE1ZDE0YmIyZmU2YjAzZDMzNjU+PGU5MDFiZTMzY2FlOTY4ZDM2\nNmFmOGNhOTUxNTE0Nzk0Pl0vSW5mbyAyMyAwIFIvU2l6ZSAyND4+CnN0YXJ0\neHJlZgoyMzg2NgolJUVPRgo=\n\n--------------A5B0A8B4F69F8BD959B758D0--';
    final rx = RegExp(r'filename="Myfile\.pdf"\s*(\S.*(?:\n\S.*)*)');
    final match = rx.firstMatch(base64str);
    if (match != null) {
    print(match.group(1));
    }
    输出:
    JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlL1hPYmplY3QvQ29sb3JT
    ZWI0ODRmNDE1ZDE0YmIyZmU2YjAzZDMzNjU+PGU5MDFiZTMzY2FlOTY4ZDM2
    NmFmOGNhOTUxNTE0Nzk0Pl0vSW5mbyAyMyAwIFIvU2l6ZSAyND4+CnN0YXJ0
    eHJlZgoyMzg2NgolJUVPRgo=

    关于regex - 正则表达式在imap响应中获取文件的base64字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63252511/

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