You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python re模块提取指定字符之间的文本内容?

错误原因

你写的正则表达式和实际文本结构完全不匹配:

  • 正则里额外加了\(\[规则,会匹配([这两个字符,但实际文本中spent_transaction_hash'后面紧跟的是: 和单引号包裹的哈希值,不存在这两个字符,所以完全匹配不到内容,返回空列表。
  • 你设定的结束规则'\]也和实际结构不符,哈希值的结束标识是闭合的单引号,不需要匹配方括号。

解决方法

方法1:修正正则直接提取(简单快捷)

匹配spent_transaction_hash': '到下一个单引号之间的内容即可,有两种实现方式:

  1. 修正你的原有循环代码:
import re

my_list = []
for row in df['column']:
    value = re.findall(r"spent_transaction_hash': '([^']+)'", row)
    my_list.append(value)

df['hash_list'] = my_list
  1. 更高效的pandas向量化写法,无需手动循环:
df['hash_list'] = df['column'].str.findall(r"spent_transaction_hash': '([^']+)'")

方法2:转成Python对象再提取(更稳妥,避免特殊字符匹配出错)

你的文本本身就是类列表字典的序列化结构,转成原生Python对象再取字段更可靠:

import ast

def extract_hash(row_str):
    # 处理Decimal语法,避免解析失败
    cleaned_str = row_str.replace("Decimal(", "").replace(")", "")
    data = ast.literal_eval(cleaned_str)
    return [item['spent_transaction_hash'] for item in data]

df['hash_list'] = df['column'].apply(extract_hash)

内容的提问来源于stack exchange,提问作者user16599218

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:48:04