What does preceding a string literal with “r” mean? [duplicate]

Posted on

Question :

What does preceding a string literal with “r” mean? [duplicate]

I first saw it used in building regular expressions across multiple lines as a method argument to re.compile(), so I assumed that r stands for RegEx.

For example:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)

So what does r mean in this case? Why do we need it?

Answer #1:

The r means that the string is to be treated as a raw string, which means all escape codes will be ignored.

For an example:

'n' will be treated as a newline character, while r'n' will be treated as the characters followed by n.

When an 'r' or 'R' prefix is present,
a character following a backslash is
included in the string without change,
and all backslashes are left in the
string. For example, the string
literal r"n" consists of two
characters: a backslash and a
lowercase 'n'. String quotes can be
escaped with a backslash, but the
backslash remains in the string; for
example, r""" is a valid string

Leave a Reply

Your email address will not be published.