在字符串前面加‘r',字符串就变为了原始字符串,原始字符串的出现是为了消除ASCII字符串和正则表达式字符串之间的冲突。例如'\b'在ASCII里表示退格,在正则表达式里却表示字符串的边界。在加上'r'之后,出现冲突时以正则表达式规则为准,这时r'\b'就表示字符边界了,但是,不能再用r'\\b'表示退格。在默认情况下,'\b'表示退格符,'\\b'表示字符边界。也就是说,加'r'之前,ASCII字符能够转义为正则表达式字符,加'r'之后,正则表达式字符不能转义为ASCII字符。
p.s. 字符r'\b'表示字符串边界,例如'hello world'中每个单词两边都有一个边界,这时用r'\bhello\b'可以匹配,但如果是'hellohello world'再用r'\bhello\b'就匹配不上了。
原文链接:https://www.f2er.com/regex/362722.html