首页 > 解决方案 > 字符串对象列表的正则表达式

问题描述

我有一个清单如下:

list12 = ['**FIRS0425 SOPL ZTE First Company limited', 'Apple Technology','*ROS Sami']

我的代码如下

import re
[item2 for item in list12 for item2 in item.split() if not re.match("^[*A-Z]+(0-9){4}$", item2)]

我得到如下输出:

['First', 'Company', 'limited', 'Apple', 'Technology', 'Sami']

我希望输出如下:

['SOPL', 'ZTE', 'First', 'Company', 'limited', 'Apple', 'Technology', 'ROS', 'Sami']

我不擅长正则表达式。如何获得所需的解决方案?

标签: regexpython-3.x

解决方案


看来你正在寻找

\b([A-Za-z]+)\b

Python

import re
list12 = ['**FIRS0425 SOPL ZTE First Company limited', 'Apple Technology','*ROS Sami']

rx = re.compile(r'\b([A-Za-z]+)\b')
result = [word for item in list12 for word in rx.findall(item)]
print(result)

哪个产量

['SOPL', 'ZTE', 'First', 'Company', 'limited', 'Apple', 'Technology', 'ROS', 'Sami']

推荐阅读