如何使用正则表达式取出以下字符串中的Base64编码?

dy630 2002-11-06 10:10:36
+OK 3170 octets
Received: from welcome [199.33.0.127] by welcome.com.cn with ESMTP
(SMTPD32-7.04) id A96520C001D2; Mon, 04 Nov 2002 17:09:57 +0800
Date: Mon, 4 Nov 2002 17:8:49 +0800
From: "welcome" <welcome@welcome.com.cn>
To: welcome@welcome.com.cn <welcome@welcome.com.cn>
Subject: fdafdasfda
X-mailer: Foxmail 4.1 [cn]
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="=====000_Dragon136765354575_====="
Message-Id: <200211041709102.SM00162@welcome>
X-RCPT-TO: <welcome@welcome.com.cn>
Status: R
X-UIDL: 321284748

This is a multi-part message in MIME format.

--=====000_Dragon136765354575_=====
Content-Type: text/plain;
charset="GB2312"
Content-Transfer-Encoding: quoted-printable

welcome=A3=AC=C4=FA=BA=C3=A3=A1

=09

=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=D6=C2
=C0=F1=A3=A1
=09=09=09=09

=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1welcome
=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1welcome@welcome.com.cn
=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A12002-11-04

--=====000_Dragon136765354575_=====
Content-Type: application/octet-stream;
name="attach.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="attach.txt"

x+m7sLTzsca5qSANCiAgIA0KICDFrqO6xOPV5rXEsbPK7MHLztK1xNK7x9DC8KO/ztK1xMntuN+h
oszl1tihotfuz7K7trXEus3X7szW0eG1xKOsxOO1ucu1y7W/tKOhIA0KICDE0KO6ye243y4uLi4u
LqOoxNPBy8TTzbejqbSpxr2119Cstb3O0s/CsM2jrLSpuN+4+tCstb3O0rb6tuSho8zl1tijqLHf
y7zL97HfvMbL46Opo6zO0tPD19TQ0LO1zdTE46Osw+PHv7/J0tTJzzMwoePQscbCo6yxp9fFxOO1
xLuwo6y5wLzG19+yu7P2wb3D16GjxOPX7s+yu7bTw7zi1ri818b+ztIs1+7M1tHhztK/tNfjx/K6
zbHwtcTFrrqitvkuIA0KICAgDQogICANCiAgIA0KICDFrjq63yHEx8Tjtb2118+yu7bO0sTEtvk/
srvQ7cu1IrrctuAiIdKqvtnA/dfTISANCiAgxNA6tuC1w7rcKNPQteO1w9LiKSzA/cjnxOO40MOw
wcvDu9PQwabG+LrNztKzs9fsO8D9yOfE47K71NnSqsfzztK908Tjz8Kw4Na70qrDv8zs1OfJz7Ty
tee7sL3Q0NHE477N0NDByzvA/cjnxOPLtcbkyrXDtbnlsrvI57TzsNeyy8q1u907wP3I5y4uLi4u
Liiz8sHLs/LFrrXEwbPJqyyx1cHL1+wpIA0KICDFrjq82cnoLM7Sus3E48LozazKscLky64sxOPP
yL7Iy60/IA0KICDE0DrE47K7ysfLtcTj0ae74dPO077By8LwPyANCiAgxa46xOPX7sTRzfy1xLrN
ztLT0LnYtcTKwrb5ysfExNK7vP4/IA0KICDE0Dq/z7aoyse94bvpIbCux+nW1dPavfjQ0LW9tdfB
y8LvISjQxLXAOrO5tdfC2c/dtcTI1dfTLMLotcTLrcTczfywoSEpIA0KICDFrjrE48u1ztK6zcTj
tNPHsLXExa7F89PR09DKssO0x/ix8D/LtdG9xOMhIA0KICDE0DrL/T/Kx9K7xczDu8/Czeq1xMbl
LMTj0b0sysfSu8XMz8Kyu83qtcTG5S4gDQogIMWuOrbUxOPAtMu1LM7Su7myu8jnxOO1xLm31tjS
qsLwIT8gDQogIMTQOrzZyOfE47K71Nm9sruwLNPWxNyz1Mqjt7kstbHIu7u5ysfE49bY0qqjriAN
CiAgxa6jusTjy7XO0rT3uuyxpsqvusO7ucrHtPfX6r3kusOjvyANCiAgxNCjurT3Li4uLi7Dq8/f
ytbM19fuusMuIA0KICDFrjrE48Tc0ruxstfT1ruwrs7S0ru49sLwPyANCiAgxNA6tbHIu8TcISi4
oc/rOtTa0ru49rrzw+a808nPItChyrEiLLn+uf4hKSANCiAgxa46vNnI58TjyqfIpcHLztIsxOO7
4dT10fk/IA0KICDE0Dqy6LK7y7y3ubK7z+suKM7S1rvP68ilusi+xiG6w7rDx+zXo8fs16MhKSAN
CiAgxa46z9bU2izE48rHsrvKx7u5z+vXxbHwtcTFrsjLPyANCiAgxNA6xOPC6N/CIcv9wM/Iy7zS
sK66yPbq0+PMwCy98c3tuPjL/cLyvLjM9cvNyKUuIA0KICDFrtPQteO439DLwcssz+vBy9K7z+sp
xOPX7s/ruPrO0su1tcTI/bj219bKxy4uLiA/uPjE49K7tM67+rvh388hKMbatP212CkgDQogIMTQ
OrHwLS3Oyi0tLcHLISANCiAgxa46xOMhKNKn0cDH0LPdyta9xbKi08Msxb4h4OghKSANCiAgxNA6
sKXRvSG+yMP8sKEuLi4uLi4gDQo=

--=====000_Dragon136765354575_=====--

...全文
820 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-11-06
  • 打赏
  • 举报
回复
Content-Transfer-Encoding不一定是base64
http://www.google.com/search?q=Content-Transfer-Encoding+filename+-base64

try

Regex re = new Regex(@"Content-Transfer-Encoding: base64(?<filename>.+?)(\r\n){2}(?<base64>.*?)(\r\n){2}", RegexOptions.Singleline);
saucer 2002-11-06
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;


Regex re = new Regex(@"filename=""(?<filename>[^""]+)""\s+(?<base64>.*)\s+-+=+", RegexOptions.Singleline | RegexOptions.IgnoreCase);
Match m = re.Match(str);
if (m.Success)
{
Console.WriteLine(m.Groups["filename"].Value);
Console.WriteLine(m.Groups["base64"].Value);
}
spring_ok 2002-11-06
  • 打赏
  • 举报
回复
不一定要用正则表达式。如果非要用,对不起,我还没想到好的方法。

先找到:
boundary="=====000_Dragon136765354575_====="
取得分界的字符串。
然后用它 split 整个串。在得到的数组中循环,检查是否包含:base64这个词来确定是否是你要的。
dy630 2002-11-06
  • 打赏
  • 举报
回复
太牛了!! 三剑客都来了,感动ing

再问一下,如果有不只一段的base64编码怎么办?(不管这个问题有没回答,下午结贴。thanks)

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧