python - 从字符串中提取哈希数字

标签 python json extract

如何仅提取各种字符串中引号中的哈希数字,例如:

[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/

相关文章:

python - 如何在 Pandas 中选择具有特定字符串模式的行?

java - jackson/json 模式 - 用外部 json 模式生成器模块替换 ISO8601Utils

python - 使用正则表达式重新字符串匹配提取 URL 链接 - Python

javascript - 批量调用 API 某些响应返回无效的 json 响应正文

c# - 如何从跨域 API 获取数据

c++ - 从 stringstream 中提取到 2D vector 中

node.js - 如何从 package.json 文件中以表格格式获取依赖项列表

python - 如何使用python将数组存储在字典中

python - 有没有办法将哈希数据从摘要版本转换为十六进制版本

python - 如何将 django QueryDict 更改为 Python Dict?