使用decode()与regex来解除此字符串的转换

时间:2012-04-22 14:45:31

标签: python regex string escaping decode

我有以下字符串,我正在试图找出解决它的最佳做法。

解决方案必须有点灵活,因为我从API接收此输入并且我不能完全确定当前字符结构(\n而不是\r)将总是一样的。

'"If it ain\'t broke, don\'t fix it." \nWent in for a detailed car wash.\nThe attendants raved-up my engine when taking the car into the tunnel. NOTE: my car is...'

这个正则表达式似乎应该有效:

text_excerpt = re.sub(r'[\s"\\]', ' ', raw_text_excerpt).strip()

我已经读过decode()可能有效(并且通常会成为更好的解决方案)。

raw_text_excerpt.decode('string_unescape')

沿着这些方向尝试了一些东西并且没有用。有什么建议?正则表达式在这里最好吗?

1 个答案:

答案 0 :(得分:16)

您正在寻找的编解码器是string-escape

>>> print "\\'".decode("string-escape")
'

我不确定他们添加了什么版本,但是......可能是你正在使用的旧版本没有它。我正在跑步:

Python 2.6.6 (r266:84292, Mar 25 2011, 19:36:32) 
[GCC 4.5.2] on linux2