Python技术问题:如何在无空格大字节码字符串中查找指定内容
解决字节码字符串匹配的布尔值返回问题
嘿,我明白你的困扰了!你遇到的问题其实是对str.find()方法的返回值理解有点偏差——它不会直接返回True/False,这就是你觉得“未成功”的原因。
问题根源
str.find(sub)方法的逻辑是:
- 如果找到目标子串,返回子串在原字符串中的起始索引位置(从0开始计数)
- 如果找不到,才返回
-1
在你的示例里,byte_code.find('fhfh47tg')其实会返回22(这个子串确实存在),但你可能误以为它会返回True,所以才觉得方法没起作用。
两种简单解决方案
方案1:用in运算符(最直观)
Python里判断子串是否存在,最直接的方式就是用in关键字,它会直接返回布尔值:
byte_code = 'ergewyegt6t4738t8347tygfhfh47tg4378t58437t485t454gyfofby3gyfg34t5t6435t3465tg3465t4' target = 'fhfh47tg' is_found = target in byte_code print(is_found) # 输出: True
方案2:基于find()做判断
如果你一定要用find()方法,只需要判断它的返回值是否不等于-1即可:
is_found = byte_code.find(target) != -1 print(is_found) # 输出: True
这两种方式都能满足你“找到匹配时返回True”的需求,推荐用第一种,代码更简洁易懂。
内容的提问来源于stack exchange,提问作者Christopher Pantelli
相关产品推荐
相关产品推荐

