【发布时间】:2018-11-28 11:07:13
【问题描述】:
我的客户看起来像这样->
from email.mime.multipart import MIMEMultipart
b = MIMEMultipart()
b['a'] = "Hello"
b['b'] = "--\nhttp://www.stallergenes.com/images/STAL_mail.png"
b.as_string()
这会调用 generator.py 中的函数 _write_headers
这个 generator.py 调用 header.py 中的 encode 方法
header.py 中的编码函数如下所示 ->
def encode(self, splitchars=';, \t', maxlinelen=None, linesep='\n'):
_embedded_header = re.compile(r'\n[^ \t]+:')
print 'value in header.py is -> %s, %s, %s' %(value, type(value), _embeded_header.pattern, _embeded_header.search(value))
if _embedded_header.search(value):
raise HeaderParseError("header value appears to contain "
"an embedded header: {!r}".format(value))
return value
在 python2.7 中,这是我在 docker 容器中的 header.py 文件。
header.py 中打印语句的值-> --\nhttp://www.stallergenes.com/images/STAL_mail.png, \n[^ \t]+:, None
所以基本上,它应该是匹配的。为什么它没有与这个正则表达式匹配?
【问题讨论】:
-
如果
print的输出是--\nhttp://www.stallergenes.com/images/STAL_mail.png,那么您确实没有在value中有换行符。否则,'\n'将显示为换行符。显然您的'\n'实际上是'\\n'。 -
但是为什么它不坏呢?它也适用于“Cecilia Alarcon 12:01 PM:\n(y):D”、“失败的监视器包括:\nFreeWheel: 2018-03-25”、“Anoka Stake Center\n6:30 & 7”等输入:30pmCT"
标签: python regex python-2.7