regex - python raw string escaping character -
a noob question. reading documentation on use of regexes in python. under impression using raw string treat '\' , not consider whatever following escape sequence. in example reading, however,
>>> phonenumregex = re.compile(r'(\(\d\d\d\)) (\d\d\d-\d\d\d\d)') >>> mo = phonenumregex.search('my phone number (415) 555-4242.') >>> mo.group(1) '(415)' >>> mo.group(2) '555-4242' clearly, author has escaped '(' '\' . want understand how. thought putting 'r' @ bring treat '\' no differently.
the \ in raw string literal literal \, need use escape shorthand character classes , special regex characters with.
the ( beginning of grouping construct , there must closing unescaped ). these (...) never part of match. \( , \) literal ( , ) , these part of match.
think of regex engine customer delivered string. re requires \d. when use "\d", python thinks escape sequence \n, not, retains \ since default behavior unknown escape sequence , gives \d re engine. when write r"\d" python knows \ literal \ , readily provide \d re engine.
Comments
Post a Comment