import re
import string
a= """ Message-ID: <13505866.1075863688222.JavaMail.evans@thyme>
Date: Mon, 23 Oct 2000 06:13:00 -0700 (PDT)
From: phillip.allen@enron.com
To: randall.gay@enron.com
Subject:
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-From: Phillip K Allen
X-To: Randall L Gay
X-cc:
X-bcc:
X-Folder: \Phillip_Allen_Dec2000\Notes Folders\'sent mail
X-Origin: Allen-P
X-FileName: pallen.nsf
Randy,
Can you send me a schedule of the salary and level of everyone in the
scheduling group. Plus your thoughts on any changes that need to be made.
(Patti S for example)
Phillip
""" <br>
s=re.sub('[\\\]+', ' yy', a)
print(s)
错误消息:unicodeescape'解码无法解码位置354-355中的字节:格式错误error image \ N字符空间
我已经尝试过使用不同的反斜杠组合,但它仍然显示相同的错误
答案 0 :(得分:1)
要在正则表达式中编码文字反斜杠,您需要在普通字符串中使用四个反斜杠(或原始字符串中的两个反斜杠),而不是三个:
s = re.sub('\\\\+', ' yy', a)
或
s = re.sub(r'\\+', ' yy', a)
你不需要为一个角色设置一个角色类(虽然它也不会造成太大的伤害)。
答案 1 :(得分:0)
导致您的错误消息的问题(在编译期间发生,早在构造也有错误的正则表达式之前(请参阅我的其他答案))就在这一行:
X-Folder: \Phillip_Allen_Dec2000\Notes Folders\'sent mail
这里有一个\N
,Python试图将其解释为"\N{GREEK CAPITAL LETTER DELTA}"
之类的转义序列,当然也不会这样做。
你需要两个反斜杠来纠正这个问题。
X-Folder: \\Phillip_Allen_Dec2000\\Notes Folders\\'sent mail