python - 带有字节确认的 Python3 正则表达式模式
问题描述
只是检查我是否对此有正确的处理,因为这似乎很奇怪。
我有一个小的 python3 脚本来查找文件中的子字符串,其中数据被放入各种 512 字节块中。因此,字符串可能会被拆分。一种天真的方法将子字符串拆分为各种成对组合,将它们用作 re.findall 的模式。但是,必须转义正则表达式模式中的特殊字符:
>>> a=b'1$2'
>>> s=b'1231$234'
>>> re.findall (a,s)
[] # fails as '$' in a is interpreted as regex 'end of line'
>>> c=b'1\$2'
>>> re.findall(c,s)
[b'1$2']
如果我想在上面的代码中迭代组成 c 的对,有没有简单的方法可以避免将 '\' 视为特殊字符?从模式定义语言来看是有道理的,使用 '\' 作为转义字符意味着 c[:2] 是非法模式(“1\”)。但这是一种特殊情况,如果没有它会很好。
解决方案
推荐阅读
- machine-learning - 如果我正在对训练数据执行数据预处理,是否有必要对测试数据执行相同的操作?
- groovy - 在引号中打印 XML Holder 会挂起 Soapui/ReadyAPI
- amazon-web-services - Maven 无法从链中的任何提供商加载 AWS 凭证
- android - android studio中的gradle文件中的版本错误
- javascript - 删除导致令牌标识符错误的 Javascript 换行符
- php - laravel5.6 使用请求表单验证后如何更新用户数据
- javascript - 全局变量没有像方法预期的那样改变
- networking - 了解端口号
- spring - 将 SSL 添加到 Spring Boot 应用程序,该应用程序将部署在 GCP 中的 Kubernates 引擎上
- javascript - $.getscript 在使用 swup 库时创建多个调用