我正在寻找能够检测恶意软件中使用的不同Base64掩码的正则表达式,例如
但是我的简单正则表达式也匹配重复的字符串,如“ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
[a-zA-Z0-9+/]{64}
有没有办法使用正则表达式匹配非重复的64个字符?
答案 0 :(得分:0)
如果您要验证您有64个字符并检测到它们中没有一个是字符串中任何位置的重复字符,例如
好字符串:0ABcDEFGHIJKLMNOPQRSTUVWXYZabCdefghijklmnopqrstuvwxyz123456789+/
错误字符串0ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefGhijklmnopqrstuvwxyz123456789+/
,因为G
出现两次
然后你可以使用这个正则表达式:
^(?=.{64}$)(?!.*?(.)(?=.*?\1))
如果输入字符串有64个唯一字符,正则表达式将返回匹配。
^
匹配字符串的开头(?=.{64}$)
向前看以确保字符串(?!
强制否定向前看,如果内部表达式为真,则返回false .*?
将前言移到任何角色(.)
捕获单个字符并放入捕获组1 (?=
打开正向前看以查看第1组中当前角色之后的任何字符是否相同.*?
跳过任意数量的字符,直到找到下一个字符\1
对捕获组1的反向引用以确保字符不重复)
关闭积极向前看)
关闭负面展望