擅长:python、mysql、java
<p>您必须对正则表达式使用r-string,而不是b-string,因此使用<code>b'...'</code>代替<code>r'...'</code>。此外,您不能将正则表达式应用于字节字符串,因此必须首先将其转换为字符串。以下是未更改正则表达式的完整工作代码:</p>
<p><a href="https://tio.run/##K6gsycjPM/7/PzO3IL@oRKEolasktaJEwVYhSclTISe/LFUhpiLNIKbCMi2mItE8piLJQqE4XyG3NDlDUQmmtLikSAPE1Iw2stI1jIUJF6XqFZcmaRSpR8fFlMcUx8TEqusoqAMxWC1XQVFmXglE3///AA" rel="nofollow noreferrer" title="Python 3 – Try It Online">Try it online!</a></p>
<pre><code>import re
text = b"I love \xf0\x9f\xa7\xb8 so much!"
text = str(text)[2:-1]
text = re.sub(r'[^\w\s\\]', '', text)
print(text)
</code></pre>
<p>输出:</p>
<pre><code>I love \xf0\x9f\xa7\xb8 so much
</code></pre>
<hr/>
<p>您可能希望使用<code>text.encode('unicode_escape')</code>(它给出了<code>b'I love \\U0001f9f8 so much!'</code>)而不是仅仅使用<code>text.encode()</code>(它给出了<code>b'I love \xf0\x9f\xa7\xb8 so much!'</code>),因为将字符串表示为unicode转义而不是十六进制转义更为正确和可重用</p>