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

如何使用REGEX从列表元素中仅提取英文字母?

代码修正方案

你原来的代码存在两个核心问题:

  1. 方法使用错误:filter的作用是筛选列表中符合条件的元素,不会修改元素本身的内容,而你的需求是对每个元素的内容做清洗,提取其中的英文字母。你原来的代码运行后会输出和原列表一致的结果,就是因为两个元素的首字符都是非数字,都被filter保留了,但内容完全没修改。
  2. 正则规则不符合需求:\D匹配所有非数字字符,包含空格,达不到仅保留英文字母的要求。

修正后的可运行代码

import re 

text = ['aQx12', 'aub 6 5']
# 遍历每个字符串,提取所有英文字母后拼接成新内容
newlist = [''.join(re.findall(r'[a-zA-Z]', s)) for s in text]
print(newlist)

运行输出正好符合预期:['aQx', 'aub']

补充说明

[a-zA-Z]是匹配大小写英文字母的专用正则规则,re.findall会把单个字符串中所有匹配的字符都提取出来,用join拼接成完整字符串就能得到你要的清洗后的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 17:57:02