Проверить строку Python для экранирования


Я пытаюсь проверить, содержит ли строка в python экранированные символы. Самый простой способ сделать это-установить список экранированных символов, а затем проверить, есть ли какой-либо элемент в списке в строке:

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)
Есть ли лучший способ сделать это?
1 5

1 ответ:

Можно использовать регулярное выражение (см. Также re документация модуля):

>>> s = "A & 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 '&' found in string 'A & B'
  • &, ; спички &, ; буквально.
  • \w соответствует символу слова (алфавит, цифры, _).
  • \w+ соответствует одному или нескольким символам слова.