擅长:python、mysql、java
<p>这是一个空字节,它存在于原始字符串中。您可能没有看到它,因为当您打印字符串时,您的终端将忽略它:</p>
<pre><code>>>> s = "(hex,0x123456\x00)"
>>> print s
(hex,0x123456)
</code></pre>
<p>用于容器内容的Python <code>repr()</code>函数(例如您在这里打印的tuple的内容)<em>会显示它:</p>
^{pr2}$
<p>正则表达式只是返回空字节,因为它存在于原始字符串中:</p>
<pre><code>>>> import re
>>> s = "(hex,0x123456\x00)"
>>> yourpattern = re.compile("\((.*?),(.*?)\)")
>>> yourpattern.search(s).groups()
('hex', '0x123456\x00')
</code></pre>
<p>如果要删除它,正则表达式引擎也不会返回它:</p>
<pre><code>>>> yourpattern.search(s.replace('\x00', '')).groups()
('hex', '0x123456')
</code></pre>