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

Python如何提取字符串内指定符号包裹的文本内容

自动答题程序题库内容提取方案
  • 实现逻辑:先还原文件中的HTML转义字符,再通过正则匹配<strong>标签包裹的内容即可,按照你给出的存储规则,第一个匹配结果为题干,后续匹配结果为对应选项组的正确答案。

示例内容翻译结果:
题干:完成以下陈述:物质从___(1)变为气态的过程叫做(2)___。
第一组选项正确答案:1:液态;2:蒸发
第二组选项正确答案:1:固态;2:升华

可直接使用的Python实现代码

import html
import re

def extract_single_question(raw_question_block):
    # 还原HTML转义字符
    decoded_content = html.unescape(raw_question_block)
    # 匹配所有<strong>包裹的内容
    bold_pattern = re.compile(r'<strong>(.*?)</strong>', re.DOTALL)
    match_results = bold_pattern.findall(decoded_content)
    if not match_results:
        return None
    return {
        "question": match_results[0].strip(),
        "answers": [item.strip() for item in match_results[1:]]
    }

def batch_extract_qa(file_path):
    with open(file_path, "r", encoding="utf-8") as f:
        raw_file_content = f.read()
    # 按单题分隔符},拆分所有题目块,忽略最后多余的空块
    question_blocks = raw_file_content.split("},")[:-1]
    qa_list = []
    for block in question_blocks:
        qa_item = extract_single_question(block)
        if qa_item:
            qa_list.append(qa_item)
    return qa_list

# 调用示例
if __name__ == "__main__":
    # 替换为你本地题库文件的实际路径
    all_qa = batch_extract_qa("./local_question_bank.txt")
    # 打印测试
    for idx, item in enumerate(all_qa):
        print(f"第{idx+1}题:{item['question']}")
        print(f"答案:{item['answers']}\n")
  • 补充说明:如果遇到转义异常的特殊符号,可先对原始内容做replace("\\", "")处理清除多余转义符后再解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:15:02