Регулярное выражение для списка строковых объектов - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть следующий список:

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']

Я не очень хорошо с регулярным выражением.Как я могу добраться до нужного мне решения?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

A не-регулярное выражение путь в Python,

list12 = ['**FIRS0425 SOPL ZTE First Company limited', 'Apple Technology','*ROS Sami']
str = " ".join(list12)
list21 = str.split()
res = [k.strip('*') for k in list21 if '**' not in k]
print(res)

Выход:

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

DEMO: http://tpcg.io/s9aBhe

0 голосов
/ 19 февраля 2019

Кажется, вы ищете

\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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...