u" string"之间的区别和你"字符串"在Python中

时间:2016-06-01 12:27:17

标签: python types

来自documentation

  

解决方案是使用Python的常规字符串表示法   表达模式;反斜杠不以任何特殊方式处理   带有' r'前缀的字符串文字。所以r" \ n"是一个两个字符的字符串   包含' \'和' n',而" \ n"是一个单字符串   包含换行符。通常模式将用Python表示   使用此原始字符串表示法的代码。

类型也匹配; type(u"text") == type(ur"text"),删除u时同样如此。因此,我不得不问:这两者有什么区别?如果没有差异,为什么要使用r

1 个答案:

答案 0 :(得分:3)

例如:

>>> len(ur"tex\t")
5
>>> len(u"tex\t")
4

如果没有r,则\t一个字符(标签),因此字符串的长度为4。

如果要构建涉及r的正则表达式,请使用\。在非r字符串中,你必须逃避这些并不好笑。

>>> len(u"\\")
1
>>> len(ur"\\")
2