我一直在尝试制作一个正则表达式来匹配 mime 多部分电子邮件的字符集,以便我可以正确解码它们。但是,我发现格式存在一些差异,我似乎无法为其制定正则表达式,因为我不是专家。
目前我正在使用 (?<=charset=).*(?=;)
然而,我通过发送来自不同客户的电子邮件发现的示例是:
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
charset=US-ASCII;
Content-Type: text/plain; charset=iso-8859-1
所以我的正则表达式适用于前两个但不是最后一个,但是如果我删除 (?=;)
然后我也会匹配 format=flowed
部分,我不想要。
最佳答案
您可以使用 [^;]*
而不是 .*
。也就是说,匹配除 ;
之外的任何内容。
因此,模式变为:
(?<=charset=)[^;]*
引用资料
关于正则表达式匹配字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052723/