2016-09-29 4 views
0

Full Error gegeben:Typeerror: match() nimmt 2 bis 3 Positionsargumente aber 5 wurden

Traceback (most recent call last): 
    File "N:/Computing (Programming)/Code/name.py", line 3, in <module> 
    valid = re.match("[0-9]","[0-9]","[A-Z]","[a-z]" ,tutorGroup) 
TypeError: match() takes from 2 to 3 positional arguments but 5 were given 

Mein Code:

import re 
tutorGroup = input("Enter your tutor group - e.g. 10: ") 
valid = re.match("[0-9]","[0-9]","[A-Z]","[a-z]" ,tutorGroup) 
if valid: 
     print("OK!") 
else: 
     print("Invalid!") 

Ich versuche, eine Zeichenfolge mit einem bestimmten suchen Parameter

+0

Was genau tun Sie abgestimmt werden sollen, '0-9' UND' AZ' UND 'az' oder tun Sie wollen mit OR oder etwas ganz anders? – iScrE4m

+0

Ich möchte, dass es einen zweistelligen Eintrag mit zwei Groß- oder Kleinbuchstaben akzeptieren kann. – syler

Antwort

1

Das Problem ist, dass re.match 2 oder 3 Argumente, nicht 5 nehmen. Zuerst das Regex-Muster und die Zeichenfolge zu entsprechen. Optional wird ein drittes Argument mit Flags benötigt. Wenn Sie eine einzelne Ziffer oder einen Buchstaben abgleichen möchten, verwenden Sie [0-9a-zA-Z] als Regex. Wenn Sie mehrere Buchstaben oder Ziffern benötigen, können Sie [0-9a-zA-Z]+ verwenden. Wenn Sie eine Liste von Ziffern oder eine Liste von Buchstaben (aber nicht gemischt) möchten, können Sie ([0-9]+)|[a-zA-Z]+ verwenden.

Edit: Nachdem Sie Ihren Kommentar zu lesen, die Regex Sie wollen, ist [0-9]{2}[a-zA-Z]{2}

+0

Ich habe den Fehler gefunden! Ich musste [a-z] großschreiben, um zu arbeiten. Danke Kumpel – syler

+0

Wenn meine Antwort Ihnen geholfen hat, denken Sie bitte darüber nach, es zu akzeptieren. – Leon

Verwandte Themen