0
点赞
收藏
分享

微信扫一扫

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


来源

原始字符串是用来解决正则表达式和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 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

参考

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


举报

相关推荐

0 条评论