Python: создание функции Regex с необязательными флагами - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть функция, которая возвращает список кортежей, которые описывают начальную и конечную точки любых вхождений подстроки в строке.

def findlist(input, place):
    return [m.span() for m in re.finditer(input, place)]

Следовательно, findlist('a', 'abcabc') возвращает [(0, 1), (3, 4)].

Есть ли способ добавить аргумент для флагов в эту функцию? Ниже моя попытка, я добавил в flags=None, но это вызывает ошибку TypeError: unsupported operand type(s) for &: 'NoneType' and 'int' Кажется, нет флага «нет флагов», так есть ли способ сделать то, что я ищу?

def findlist(input, place, flags=None):
    return [m.span() for m in re.finditer(input, place, flags=flags)]

1 Ответ

1 голос
/ 09 апреля 2020

Измените вашу функцию на

def findlist(input, place, flags=0):
    return [m.span() for m in re.finditer(input, place, flags=flags)]

Тогда она будет работать, поскольку значение флага по умолчанию для метода re.finditer равно 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...