Python - 如何搜索没有空格的大字符串,以查看值是不是存在

Posted

技术标签:

【中文标题】Python - 如何搜索没有空格的大字符串,以查看值是不是存在【英文标题】:Python - How to search a large string with no spaces, to see if a value existsPython - 如何搜索没有空格的大字符串,以查看值是否存在 【发布时间】:2019-11-28 06:42:43 【问题描述】:

我有一个充满字节码的大字符串,所以没有空格,我正在尝试搜索该代码的特定部分。

例如;

byte_code = 'ergewyegt6t4738t8347tygfhfh47tg4378t58437t485t454gyfofby3gyfg34t5t6435t3465tg3465t4'

我正在寻找的值是 'fhfh47tg'。

我尝试了 .find String 方法,但运气不佳。 如前所述,字符串没有空格。

一旦在字符串中找到模式,我希望输出为真。

【问题讨论】:

'fhfh47tg' in byte_code ? 请包含您尝试过的代码。 str.find 应该可以正常工作,但如果没有匹配,它会返回 -1。如果您不在乎在字符串中的哪个位置找到您的模式,请改用 in 运算符。 @AniketSahrawat:只有在搜索字符串的开头找到子字符串(索引 0,这是一个假值)时,才会返回 False。不匹配将返回-1,这是真实的。相反,您可以使用print(byte_code.find('fhfh47tg') != -1) @HåkenLid 没想到 :) Does Python have a string 'contains' substring method?的可能重复 【参考方案1】:

您可以使用in (__contains__) 测试子字符串是否存在:

if 'fhfh47tg' in byte_code:
    print('Match found')

您还可以查看str.findstr.index FWIW 等方法。

【讨论】:

在 cpython(我假设大多数其他运行时)中,str.__contains__() 的实现独立于常规字符串迭代。 ***.com/a/18139681/1977847 总是比正则表达式好。【参考方案2】:

使用re.search 是一种选择:

if re.search(r'fhfh47tg', byte_code):
    print("MATCH")
else:
    print("NO MATCH")

【讨论】:

【参考方案3】:

我觉得你可以的

if 'fhfh47tg' in byte_code:
    return True

return 'fhfh47tg' in byte_code

【讨论】:

【参考方案4】:

您可以尝试以下方法:

byte_code = 'ergewyegt6t4738t8347tygfhfh47tg4378t58437t485t454gyfofby3gyfg34t5t6435t3465tg3465t4'

if 'fhfh47tg' in str:
    print("Value is present.")

(您可以根据自己的喜好更改输出。)

和平相处。

【讨论】:

以上是关于Python - 如何搜索没有空格的大字符串,以查看值是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

python练习-生成一个1到50的大字符串每个数字之间有个空格

Python用整数删除输出中的空格

如何检查字符串中的三个或更多空格 - Python [重复]

如何使用 Python 或 posix 工具搜索和替换字符串中的匹配括号

Python - 摆脱字符串中的空格

python code practice:KMP算法二分搜索的实现哈希表