当前位置:   article > 正文

Python原始字符串(Raw String)/Unicode/str_python raw string

python raw string

来源

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

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

ur'你好!\n'
  • 1

表示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!'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

原始字符串转普通字符串

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 json
print json.loads('"%s"' %str)

#方法3:使用eval
print eval('u"%s"' % str)

#repr(...)在字符串外增加一对 'deng' ->  "'deng'"
#    repr(object) -> string

#eval(repr(object)) == object

#方法4:使用python3
str.encode('utf-8').decode("unicode_escape")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

参考

  • https://docs.python.org/2/library/re.html#raw-string-notation
  • https://docs.python.org/2/library/repr.html
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/953454
推荐阅读
相关标签
  

闽ICP备14008679号