Flutter中如何移除换行符及相连=符号且保留所需=?
解决MIME软换行的字符串合并问题
问题分析
你的字符串属于Quoted-Printable编码的文本,行过长时会用=+换行(可能带缩进空格)做软换行,需要只移除这些用于换行的=、换行符及后续空白,保留业务需要的=(比如color=3D#8080ff里的=)。
解决方案
用正则表达式精准匹配软换行的模式,替换为空即可。不同语言的实现逻辑一致,以下是常见语言的示例:
Java 代码
String fixedStr = originalStr.replaceAll("=\\s*\\r?\\n\\s*", "");
Python 代码
import re fixed_str = re.sub(r'=\s*\r?\n\s*', '', original_str)
正则逻辑解释
=:匹配软换行专用的等号\\s*:匹配等号后可能存在的空白字符(兼容部分编码的格式)\\r?\\n:匹配Windows(\r\n)或Unix(\n)的换行符\\s*:匹配换行后开头的缩进空白(比如你例子里换行后的两个空格)
替换效果示例
原断开的片段:
al= t=3D"Inline Image with alt"
替换后会变成:
alt=3D"Inline Image with alt"
而像color=3D#8080ff这类正常的=会完整保留。
内容的提问来源于stack exchange,提问作者Lyn
相关产品推荐
相关产品推荐

