7

我有以下字符串,我正在尝试找出取消转义它的最佳做法。

该解决方案必须有点灵活,因为我从 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')

沿着这些路线尝试了一些东西,但没有奏效。有什么建议么?正则表达式在这里最好吗?

4

1 回答 1

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
于 2012-05-03T08:18:15.023 回答