python中的r前缀
当出现“r”或“r”前缀时,反斜杠后面的字符将包含在字符串中而不作更改,并且所有反斜杠都保留在字符串中。例如,字符串literalpython中的r前缀,python,string,Python,String,当出现“r”或“r”前缀时,反斜杠后面的字符将包含在字符串中而不作更改,并且所有反斜杠都保留在字符串中。例如,字符串literalr“\n”由两个字符组成:反斜杠和小写字母“n”。字符串引号可以用反斜杠转义,但反斜杠仍保留在字符串中;例如,r“\”是由两个字符组成的有效字符串文字;r“\”不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠将转义下面的引号字符)。另外,请注意,后跟换行符的单个反斜杠将被解释为作为字符串一部分的这两
r“\n”
由两个字符组成:反斜杠和小写字母“n”。字符串引号可以用反斜杠转义,但反斜杠仍保留在字符串中;例如,r“\”
是由两个字符组成的有效字符串文字;r“\”
不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠将转义下面的引号字符)。另外,请注意,后跟换行符的单个反斜杠将被解释为作为字符串一部分的这两个字符,而不是作为行继续符
资料来源:
这让我很困惑,因为r
前缀似乎只对n
起作用,如示例所示
我感到困惑的代码是:
import re
str= "One one two three"
result=re.findall(r'o\w\w',str)
print(result)
在正则表达式的开头有r
前缀不意味着反斜杠不会转义字母w
,赋予它特殊的含义(即字母数字字符)?
结果是:['one']r表示文本中的\w没有更改,因此正则表达式将以写入方式接收字符串。r不适用于正则表达式。它是原始字符串。为什么它在正则表达式中如此常见?当您尝试此代码时会发生什么情况?@wwii:但仅在正则表达式中使用。
r'string'
的另一个常见用法是与Windows路径名一起使用:r'c:\Windows\temp'
。\w
和\t
都没有任何意义,不能以任何方式进行解析。