正则表达式匹配charset

ian*_*ker 3 regex

我一直在努力使正则表达式匹配mime多部分电子邮件的字符集,以便我可以正确解码它们.但是我发现格式存在一些差异,因为我不是专家,因此我似乎找不到正则表达式.目前我正在使用(?<=charset=).*(?=;)我通过发送来自不同客户的电子邮件找到的示例:

内容类型:text/plain; 字符集= ISO-8859-1; 格式=流入

字符集= US-ASCII;

内容类型:text/plain; 字符集= ISO-8859-1

所以我的正则表达式适用于前两个但不是最后一个,但是如果我删除(?=;)那么我也会匹配format=flowed我不想要的部分.

pol*_*nts 5

而不是.*,你可以使用[^;]*.也就是说,匹配除了;.

因此,模式变为:

(?<=charset=)[^;]*
Run Code Online (Sandbox Code Playgroud)

参考