python
  • c
  • regex
  • backslash
  • 2016-01-15 2 views 1 likes 
    1

    Я пытаюсь захватить '\\' с помощью регулярного выражения Python через модуль re. Я попытался сделать это с помощью:Python: Захват двойной обратной косой черты C char с регулярным выражением

    back = re.compile(r"'\\'") 
    print back.findall(line) 
    

    Где line является: char = '\\';

    Но это ничего не захватить.

    Я также попытался:

    back = re.compile("'\\\\'") 
    print back.findall(line) 
    

    безрезультатно. Что случилось с моим регулярным выражением?

    ответ

    5

    Вы должны избежать обратной косой черты:

    back = re.compile(r"'\\\\'") 
    

    Код:

    >>> back = re.compile(r"'\\\\'") 
    >>> line = r"char = '\\';" 
    >>> print back.findall(line) 
    ["'\\\\'"] 
    
    +1

    Это сделал. Благодарю. Я приму этот ответ, как только смогу. –

    +0

    Ну, реальный ответ заключается в том, что вы использовали необработанные строки. Вы также можете использовать '' '\\\\\\\\ "'', потому что обратная косая черта - это escape-символ как строк Python, так и регулярных выражений. –

    +1

    Да, это правда. OP также использовал необработанную строку в 'back = re.compile (r" '\\' ")', но это будет соответствовать только одному обратному косую черту. – anubhava

    Смежные вопросы