正则表达式匹配字符集

标签 regex

我一直在尝试制作一个正则表达式来匹配 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/

相关文章:

javascript - 从模式的末尾去除特定字符串的结尾

php - 正则表达式爆炸sql查询

java - 在 Java 模式匹配方面需要帮助

regex - 使用 sed 替换关联 bash 数组中的匹配值

java - 如何从字符串中删除所有不可打印的字符+表情符号?

php - 如何使用 PHP 从字符串中提取 IMG 标签、值和文本

regex - 最好的现代文本解析? AKA 何时使用 Lex 和 Yacc?

python - 检查两个 Python 正则表达式模式是否等效

sql - Oracle 正则表达式 替换为条件

javascript - 正则表达式两个字符串变量