как исправить 'TypeError: неподдерживаемые типы операндов для |:' list 'и' list '' при использовании re.fullmatch - PullRequest
0 голосов
/ 15 мая 2019

я пытаюсь проверить, совпадает ли пользовательский ввод с регулярным выражением карты в теории [(2-9) | (10) | (AKQJ)] [HCSD] на самом деле "[(2-9) | (10) | (AKQJ)] [HCSD] "

удаление и перепечатывание всех пробелов, начинающихся со строки полного совпадения (больше ошибок нет) при каждой комбинации (и [это может быть необходимо для удаления не связанных или связанных частей разбиения регулярных выражений)оператор if из fullmatch проверил, как работает регулярное выражение, но пропустил, что это было укусом, и ему нужны кавычки

#!/usr/bin/python3
from re import fullmatch
def cardCheck(card):
    x = 1
    #if fullmatch([2-9|(10)|AKQJ][HCSD],card) == None:
    if x == 1:
        match = fullmatch((([2-9]|[(10)])|[AKQJ]),card)
        #return "False"
        return False
    else:
        return True
while True:
    card = input("enter the name of the card")
    if card == exit:
        break()
    card = card.upper()
    if cardCheck(card):
        print (card, "is a valid card")

я ожидал карту, "является действительной картой" для KC, 9D, 10S, ожидается 11H, 0s, 23H, чтобы не иметь выхода, фактический выход был либо

return False
         ^
SyntaxError: invalid syntax

, либо

    match = fullmatch((([2-9]|[(10)])|[AKQJ][HCSD]),card)
TypeError: unsupported operand type(s) for |: 'list' and 'list'
depending on what version i tried

1 Ответ

0 голосов
/ 15 мая 2019

Регулярное выражение - это строка.Он должен быть заключен в кавычки: "([2-9]|[(10)])|[AKQJ]".Ошибка «неверный синтаксис» возникает из-за пропущенных кавычек.

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