Python 用于检测base64的正则表达式

Python 用于检测base64的正则表达式,python,regex,base64,Python,Regex,Base64,我读过一篇关于检测base64的正则表达式的文章,但当我在“yara python”中尝试它时,它给出了一个错误“unterminated regular expression” 正则表达式是: (?:[A-Za-z0-9+/]{4}{2,}(?[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=|[A-Za-z0-9+/][AQgw]=) 谁能提出一个建议吗? 谢谢这对我很有用: >>> import re >>> re.compile(r

我读过一篇关于检测base64的正则表达式的文章,但当我在“yara python”中尝试它时,它给出了一个错误“unterminated regular expression” 正则表达式是:

(?:[A-Za-z0-9+/]{4}{2,}(?[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=|[A-Za-z0-9+/][AQgw]=)

谁能提出一个建议吗? 谢谢

这对我很有用:

>>> import re
>>> re.compile(r'(?:[A-Za-z0-9+/]{4}){2,}(?:[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=|[A-Za-z0-9+/][AQgw]==)')
<_sre.SRE_Pattern object at 0x2865c40>
>>重新导入
>>>重新编译(r’(?:[A-Za-z0-9+/]{4}{2,}(?[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=|[A-Za-z0-9+/][AQgw]==))

我建议对
[A-Za-z0-9+/]
块中的
/
字符进行转义,因为在取消转义时,它定义了正则表达式的开始/结束。

为什么不尝试将其转换为十六进制(或其他任何形式)。如果失败了,那么你就知道它不是base64.re.compile((?:[A-Za-z0-9+/]{4}{2,}(?[A-Za-z0-9+/]{2}[AEIMQUYcgkosw048]=|[A-Za-z0-9+/][AQgw]==)工作起来很有魅力,正则表达式本身没有问题。此外,正如Ben已经提到的,只要解码它,看看它是否抛出错误。这个表达式通常应该做什么?它不匹配任何base64编码的字符串,但只匹配一些非常特殊的字符串…它检测base64,但遗漏了一些,根据这篇文章,它遗漏了三分之一,应该只有很少的误报。不,Python在正则表达式周围不使用分隔符。谢谢大家,你们太棒了,我确实再次尝试了它,最终意识到它在python中运行得很好,正如您所提到的,但在“yara”上出现了错误。大家欢呼:)