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

如何使用Python正则表达式从CSV行数据中提取逗号分隔的小写字母序列

正则表达式填写方案

???处填写的正则为:r'\b[a-z]+(?:,[a-z]+)*\b'

规则说明

  • \b匹配单词边界,避免匹配到行末键值对中的无效片段
  • [a-z]+匹配至少1个小写字母,对应序列中的单个元素
  • (?:,[a-z]+)*为非捕获组,匹配0次或多次「逗号+小写字母序列」的组合,覆盖所有后续元素,不会出现漏匹配最后一个元素的问题

代码修正说明

你现有的代码存在两处需要调整的地方:

  1. 正则匹配后拿到的是序列字符串(如b,g,f),需要调用split方法拆分为列表
  2. 代码中b变量未定义,需要处理匹配结果后再追加到列表

修正后的完整代码如下:

import re

list_sequence = []
with open("data.csv", "r") as file:
    lines = file.readlines()

for line in lines:
    match_res = re.findall(pattern=r'\b[a-z]+(?:,[a-z]+)*\b', string=line)
    # 过滤出包含逗号的匹配结果,即为目标序列
    target_str = [s for s in match_res if ',' in s][0]
    list_sequence.append(target_str.split(','))

# 输出验证
for seq in list_sequence:
    print(seq)

运行后输出结果和你预期一致:

['b', 'g', 'f']
['a', 'f', 'c', 'd']

内容的提问来源于stack exchange,提问作者Luis Alejandro Vargas Ramos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:24:03