匹配以digi结尾的术语

2024-04-23 21:00:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个单词列表,有“term”或“termNUM”模式,例如“term”或“term02”。 我想保存所有以数字结尾的术语,但删除纯字母的术语。你知道吗

我对regex完全陌生,我尝试了几个选项,得到了以下结果:

new_list = [x for x in old_list if re.match("[(^a-zA-Z_)\d]", x)]

它不工作,我知道它只需要一个小的地方调整,但我在regex有限的技能,不能做得很快。你知道吗

小费是高度赞赏的。你知道吗


Tags: 列表new选项结尾字母模式数字单词
3条回答
>>> list = ["term", "term2", "term200"]
>>> new_list = [x for x in list if re.match("^[a-zA-Z_]+\d+$", x)]
>>> new_list
['term2', 'term200']

为什么要使用regex呢?你可以简单地检查最后一个字符是否是数字。i、 e

new_list = [x for x in old_list if x[-1].isdigit()]
r".*\d"

即任何字符(.)、任意次数(*)后跟一个数字(\d)。你的理解是正确的。你知道吗

你也可以这样做

[x for x in old_list if x[-1].isdigit()]

假设空字符串不在列表中。我更喜欢这个选项,因为它的作用更明确。你知道吗

相关问题 更多 >