如何仅提取各种字符串中引号中的哈希数字,例如:
[file:hashes.'MD5' = '547334e75ed7d4eea2953675b07986b4']
[file:hashes.'SHA1' = '82d29b52e35e7938e7ee610c04ea9daaf5e08e90']
[file:hashes.'SHA256' = 'ff3b45ecfbbdb780b48b4c829d2b6078d8f7673d823bedbd6321699770fa3f84']
我需要使用此脚本提取数字并插入到表中:
if item['hash'][:12]=='[file:hashes': #it finds the hash string from Json dic like above lists
if item['hash'][22:-2] not in hash_column: #extracts the digits but only for MD5
insert_hash_table(item['hash'][22:-2]) #insert the hash digit
因此,在上面的示例中,如果“=”之前的字符串由于不同的哈希值而发生变化,那么我将无法与我的代码保持一致。是否有办法只提取所有类型的哈希值的引号内“=”后面的数字? - 例如82d29b52e35e7938e7ee610c04ea9daaf5e08e90
最佳答案
尝试(regex101):
import re
s = """\
[file:hashes.'MD5' = '547334e75ed7d4eea2953675b07986b4']
[file:hashes.'SHA1' = '82d29b52e35e7938e7ee610c04ea9daaf5e08e90']
[file:hashes.'SHA256' = 'ff3b45ecfbbdb780b48b4c829d2b6078d8f7673d823bedbd6321699770fa3f84']"""
pat = re.compile(r"=\s*'([^']+)'")
for m in pat.findall(s):
print(m)
打印:
547334e75ed7d4eea2953675b07986b4
82d29b52e35e7938e7ee610c04ea9daaf5e08e90
ff3b45ecfbbdb780b48b4c829d2b6078d8f7673d823bedbd6321699770fa3f84
关于python - 从字符串中提取哈希数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73954526/