Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用文件和正则表达式误解Python字节_Python_Python 3.x - Fatal编程技术网

用文件和正则表达式误解Python字节

用文件和正则表达式误解Python字节,python,python-3.x,Python,Python 3.x,我试图修改字节数据,我的文件是用b修饰符读取的 有时搜索将包含通配符,因此我使用re-它支持字节模式 比如说 re.finditer(b'\x00\x01\x00\x03\x7c', file) 我的问题是,\x7c在正则表达式中被解释为操作符 在所有其他情况下,字节搜索都可以正常工作,如何停止re解析?我是否误解了re或字节数据 谢谢 > python --version Python 3.8.1 将转义字符插入正则表达式(反斜杠\x5c)以转义管道应该可以: re.finditer

我试图修改字节数据,我的文件是用
b
修饰符读取的

有时搜索将包含通配符,因此我使用
re
-它支持字节模式

比如说

re.finditer(b'\x00\x01\x00\x03\x7c', file)
我的问题是,
\x7c
在正则表达式中被解释为
操作符

在所有其他情况下,字节搜索都可以正常工作,如何停止
re
解析?我是否误解了
re
或字节数据

谢谢

> python --version
Python 3.8.1

将转义字符插入正则表达式(反斜杠
\x5c
)以转义管道应该可以:

re.finditer(b'\x00\x01\x00\x03\x5c\x7c', file)
值得注意的是,您可以在ByTestRing中输入字符串/字符文本,它们工作得很好,这使它更易于理解:

re.finditer(b'\x00\x01\x00\x03\|', file)
或者您可以先使用
re.escape()
,这是一种更具扩展性和通用性的解决方案:

re.finditer(re.escape(b'\x00\x01\x00\x03\x7c'), file)

谢谢大家!<代码>重新逃跑是我所需要的。有趣的是,我也在
打印
进行调试,但实际上它仍然显示了
,即使正则表达式现在工作正常。