Мне нужно написать функцию python, которая получает строку кода в качестве входных данных и возвращает true, если эта строка содержит троичный оператор (и считает их!), Иначе false.Я написал несколько версий регулярных выражений, которые отлично работали на этом сайте https://regexr.com/,, но, например, в Google Colab ни одна из них не работала.
def ternaryOp(line):
found_operator=re.findall(r'(((=|==|<|>|<=|>=|!=)[\s\t]*)?[\s\t]*.+[\s\t]*\?[\s\t]*((.+:.*)|(.*:.+)))',line)
if found_operator:
print(len(found_operator))
print(found_operator)
return True
else:
return False
ternaryOp('category=age<18?child:adult')
Ожидаемый результат:
1
[('category=age<18?child:adult')]
True
Фактический результат:
6
[('category=age<18?child:adult', '', '', 'child:adult', 'child:adult', '')]
True