Python原始字符串(Raw String)/Unicode/str

来源:互联网 发布:plsql执行sql语句 编辑:程序博客网 时间:2024/04/30 00:54

来源

原始字符串是用来解决正则表达式和ASCII字符之间的冲突而产生的技术。例如正则表达式\b表示匹配单词边界,而ASCII字符\b表示退格,如果正则表达式要匹配退格,就要使用双重转义,如\\b。为了简化过多的转义符,就引入了原始字符串,例如字符串'\\b'可用r'\b'来表示。所以原始字符串常用在正则表达式里。

匹配UNICODE字符和回车的正则表达式:

ur'你好!\n'

表示represent

类似于表示UNICODE字符的时候,在字符串前加’u’,表示原始字符串的时候,在字符串前加’r’,这个字符串就是原始字符串了。加r前缀的意思就是防止转义。

普通字符串转原始字符串

s = "Hello \n World!"# 输出用户易读的格式(显式转换)print str(a)# Hello #  World!# 输出用户易读的格式(隐式转换)print a# Hello #  World!# repr输出原始字符串(Python内部表示的字符串)print repr(a)# 'Hello \\n World!'

原始字符串转普通字符串

str = "\u7a7f\u8d8a\u4e9a\u6d32\u6700\u957f\u6700' #方法1 使用unicode_escape 解码  print str.decode('unicode_escape')print unicode(str, 'unicode_escape')#方法2:若为json 格式,使用json.loads 解码import jsonprint json.loads('"%s"' %str)#方法3:使用evalprint eval('u"%s"' % str)#repr(...)在字符串外增加一对 'deng' ->  "'deng'"#    repr(object) -> string#eval(repr(object)) == object#方法4:使用python3

参考

  • https://docs.python.org/2/library/re.html#raw-string-notation
  • https://docs.python.org/2/library/repr.html