>>> 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']
>>> 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']
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'] [] >>>
p = re.compile('[12]+$')