Проверить строку 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 ответ:
Можно использовать регулярное выражение (см. Также
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+
соответствует одному или нескольким символам слова.