Python – wie benutze ich Re, um eine ganze Saite anzupassen

Ich validiere die Texteingabe von einem Benutzer, so dass es nur Briefe akzeptiert, aber keine Zahlen. Bisher funktioniert mein Code gut, wenn ich eine Nummer eintippe (zB 56), es warnt mich, dass ich nur Buchstaben eingeben soll und wenn ich Briefe eintippe, gibt es nichts zurück (wie es auch tun sollte). Mein Problem ist, dass es es akzeptiert, wenn ich anfange mit der Eingabe von Buchstaben gefolgt von Zahlen zB (s45). Was es tut, akzeptiert den ersten Brief, aber nicht die ganze Saite. Ich brauche es, um die ganze Saite zu akzeptieren.

def letterCheck(aString): if len(aString) > 0: if re.match("[a-zA-Z]", aString) != None: return "" return "Enter letters only" 

4 Solutions collect form web for “Python – wie benutze ich Re, um eine ganze Saite anzupassen”

Verankern Sie es an den Anfang und das Ende und passen Sie ein oder mehrere Zeichen an:

 if re.match("^[a-zA-Z]+$", aString): 

Hier verankert man den Anfang der Saite, $ bis zum Ende, und + stellt sicher, dass du 1 oder mehr Zeichen übereinstimmst.

Du wärst es besser, nur str.isalpha() benutzen. Keine Notwendigkeit, für den heftigen regulären Ausdruck Hammer hier zu erreichen:

 >>> 'foobar'.isalpha() True >>> 'foobar42'.isalpha() False >>> ''.isalpha() False 

Verwenden Sie Grenzen in Ihrem regex + raw string, um die regex zu kodieren, wie folgt:

 r"^[a-zA-Z]+$" 

Sie könnten erwägen, isalpha () auf der Zeichenfolge zu verwenden. Es gibt true zurück, wenn die Zeichenfolge nur alphabetische Zeichen enthält, sonst false.

 if aString.isalpha(): do something else: handle input error 

Wenn du nach hübschen pythonischen Schriften suchst, geh nach isalpha und isdecimal:

 str = u"23443434"; print str.isdecimal(); 
  • Python: Implizite Konvertierung von Objekt in Str?
  • Legen Sie einen String in den angegebenen String bei gegebenem Index in Python ein
  • Wie kann ich Sonderzeichen (Tab, Newline) in eine Python-Doctest-Ergebniszeichenfolge einfügen?
  • Python-Numpy-Array von beliebigen Längen-Strings
  • So ändern Sie einen String in Großbuchstaben
  • Teste einen String, wenn es Unicode ist, welcher UTF-Standard ist und seine Länge in Bytes bekommt?
  • Name ist nicht definiert Fehler
  • Rekursive Umsetzung von Permutationen in Python
  • Alphabet Bereich Python
  • Wie kann ich eine Liste von Zeichen zu einem String optimal konkurrieren?
  • Wie würde ich einen zufälligen Hexdigit-Code-Generator mit .join und für Loops machen?
  • Python ist die beste Programmiersprache der Welt.