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

如何在Pandas DataFrame列中提取所有带<li>标签的子串?

解决Pandas提取所有
  • 标签及内容的问题
  • 要提取DataFrame列中所有<li>与</li>标签及其内容并拼接成字符串,推荐使用正则表达式的re.findall方法,它能匹配所有符合规则的实例并保留标签。

    修正后的代码示例

    import pandas as pd
    import re
    
    data = {
        'ID': ['1', '2'],
        'Description': ['blah blah <li>Point 1</li>blah blah<li>Point 2</li>blah blah blah', 'blah<li>Point1</li>blah<li>Point 2</li>']}
    
    df = pd.DataFrame(data)
    
    def extract_li_tags(text):
        # 非贪婪匹配所有<li>...</li>内容,包含标签本身
        li_matches = re.findall(r'<li>.*?</li>', text, re.DOTALL)
        return ''.join(li_matches)
    
    df['output'] = df['Description'].apply(extract_li_tags)
    print(df)
    

    代码说明

    • 正则表达式r'<li>.*?</li>':
      • <li>和</li>精准匹配标签边界
      • .*?采用非贪婪模式,确保匹配到最近的</li>,避免一次性匹配到文本末尾的</li>
      • re.DOTALL参数让.能匹配换行符,兼容包含换行的<li>内容
    • re.findall会返回所有匹配的列表,用''.join()将列表拼接成连续字符串,得到期望的输出格式

    运行结果

    ID                                        Description                                  output
    0  1  blah blah <li>Point 1</li>blah blah<li>Point 2...  <li>Point 1</li><li>Point 2</li>
    1  2            blah<li>Point1</li>blah<li>Point 2</li>  <li>Point1</li><li>Point 2</li>
    

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

    相关产品推荐
    方舟 Agent Plan

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

    最近更新时间:2026.08.17 06:11:17