Найти - Пользователи
Полная версия: Удаление из списка элементов по регулярному выражению
Начало » Python для новичков » Удаление из списка элементов по регулярному выражению
1 2
Rodegast
> имея список из: “1”, “2”, “12”, “21”, “31”, “32”, “3” и паттерн “12”, как получить все элементы, которые состоят только из “1” и “2” вне зависимости от порядка и кол-ва повторений с помощью регуляки?

 >>> import re
>>> s = ["1", "2", "12", "21", "31", "32", "3"]
>>> p = re.compile(r"1|2")
>>> [ x for x in s if not re.match(p, x) is None ]
['1', '2', '12', '21']
PEHDOM
Rodegast ты ищещь любой элемент начинающийся с 1 или 2, добавь например 23 и оно тоже попадет в выборку
N. в конкретнм случае когда :
N.
имея список из: “1”, “2”, “12”, “21”, “31”, “32”, “3” и паттерн “12”, как получить все элементы, которые состоят только из “1” и “2” вне зависимости от порядка и кол-ва повторений
както так:
 import re
s = ["1", "2", "12", "21", "31", "32", "3", '23', '112211', '1234321']
for i in s:
    res = re.findall('^[12]+$', i)
    print (res)
>>> 
['1']
['2']
['12']
['21']
[]
[]
[]
['112211']
[]
>>>
ну или вариант Rodegast-а только замени p= … на
 p = re.compile('[12]+$')
Rodegast
> ты ищещь любой элемент начинающийся с 1 или 2, добавь например 23 и оно тоже попадет в выборку

Вот это ещё одна причина по которой я не люблю регулярки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB