2015-07-31 8 views
5

Ich versuche zu überprüfen, ob eine Zeichenfolge in Python mit Escapezeichen versehen ist. Der einfachste Weg, dies zu tun, ist eine Liste der Escape-Zeichen zu setzen, dann prüfen, ob jedes Element in der Liste in der Zeichenfolge ist:Überprüfen einer Python-Zeichenfolge für Zeichen mit Escape-Zeichen

s = "A & B" 
escaped_chars = ["&", 
    """, 
    "'", 
    ">"] 

for char in escaped_chars: 
    if char in s: 
     print "escape char '{0}' found in string '{1}'".format(char, s) 

Gibt es einen besseren Weg, dies zu tun?

+1

Warum fragen Sie nach einem besseren Weg? Was stimmt nicht mit deiner aktuellen Methode? Hässlich? Schlechte Darbietung? Bitte stellen Sie spezifische Fragen –

+2

Weil es viele andere escaped_chars gibt, die ich nicht eingeschlossen habe, wie '<', usw. – Andrew

Antwort

6

können Sie verwenden regular expression (Siehe re module documentation auch):

>>> s = "A &amp; B" 
>>> import re 
>>> matched = re.search(r'&\w+;', s) 
>>> if matched: 
...  print "escape char '{0}' found in string '{1}'".format(matched.group(), s) 
... 
escape char '&amp;' found in string 'A &amp; B' 
  • &, ; Streichhölzer &, ; wahrsten Sinne des Wortes.
  • \w entspricht Wortzeichen (Alphabet, Ziffern, _).
  • \w+ entspricht einem oder mehreren Wortzeichen.
+4

Super Antwort :) – The6thSense