[Python] how to escape texts for formatting in python

Discussão em 'Python' iniciado por Stack, Janeiro 21, 2025.

  1. Stack

    Stack Membro Participativo

    I have the following text.

    "\*hello* * . [ }"


    It should be escaped like this:

    "\*hello\\* \* \\. \\[ \\}"


    How to do this with python regex?

    Every special character (the special characters are: _, *, [, ], (, ), ~, `, >, #, +, -, =, |, {, }, ., ! must be escaped with the preceding character \.

    I tried it with this but then every character is escaped:

    escape_chars = r'_*[]()~`>#+-=|{}.!'
    return re.sub(f'([{re.escape(escape_chars)}])', r'\\\1', text)


    Then the text is unformatted like this:

    \*hello\* \* \. \[ \}


    But it should be like this:

    **hello** \* \. \[ \}


    Some examples:

    At \* \* \* only the middle one should be escaped At \{ \{ \} only the middle one should be escaped

    I need this for tex formatting: https://core.telegram.org/bots/api#markdownv2-style

    Continue reading...

Compartilhe esta Página