2015-07-31 14 views
5

Sto provando a verificare se una stringa in python contiene caratteri di escape. Il modo più semplice per farlo è quello di impostare un elenco di caratteri di escape, quindi verificare se un qualsiasi elemento nella lista è nella stringa:Controllo di una stringa python per caratteri in escape

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) 

Esiste un modo migliore di fare questo?

+1

Perché stai chiedendo un modo migliore? Cosa c'è che non va nel tuo attuale metodo? Brutta? Cattive prestazioni? Si prega di fare domande specifiche –

+2

Perché ci sono molti altri escaped_chars che non ho incluso, come ad esempio '<', ecc. – Andrew

risposta

6

È possibile utilizzare regular expression (Vedi anche re module documentation):

>>> 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' 
  • &, ; partite &, ; letteralmente.
  • \w corrisponde al carattere della parola (alfabeto, cifre, _).
  • \w+ corrisponde a uno o più caratteri di parola.
+4

Risposta straordinaria :) – The6thSense

Problemi correlati