Python 使用decode()vs.regex来取消显示此字符串
我有下面的字符串,我正试图找出避开它的最佳实践 解决方案必须具有一定的灵活性,因为我从API接收此输入,并且我不能绝对确定当前字符结构(Python 使用decode()vs.regex来取消显示此字符串,python,regex,string,escaping,decode,Python,Regex,String,Escaping,Decode,我有下面的字符串,我正试图找出避开它的最佳实践 解决方案必须具有一定的灵活性,因为我从API接收此输入,并且我不能绝对确定当前字符结构(\n与\r)是否始终相同 ““如果它没有坏,就不要修理它。”\n我正在仔细洗车。\n服务员把车开进车库时,把我的引擎弄得乱七八糟 隧道。注意:我的车是……’ 这个正则表达式似乎应该可以工作: text_excerpt = re.sub(r'[\s"\\]', ' ', raw_text_excerpt).strip() 我已经读到,decode()可能有效(通
\n
与\r
)是否始终相同
““如果它没有坏,就不要修理它。”\n我正在仔细洗车。\n服务员把车开进车库时,把我的引擎弄得乱七八糟
隧道。注意:我的车是……’
这个正则表达式似乎应该可以工作:
text_excerpt = re.sub(r'[\s"\\]', ' ', raw_text_excerpt).strip()
我已经读到,decode()
可能有效(通常是更好的解决方案)
尝试了一些类似的方法,但没有成功。有什么建议吗?regex是这里最好的吗?您正在寻找的编解码器是
字符串转义
:
>>> print "\\'".decode("string-escape")
'
我不知道他们添加了什么版本,不过。。。可能是您正在使用的旧版本,但没有。我在跑步:
Python 2.6.6 (r266:84292, Mar 25 2011, 19:36:32)
[GCC 4.5.2] on linux2
这似乎是一个足够公平的解决方案。你可以用lstrip代替strip,但这是一个很小的挑剔。谢谢Wes。我想我想让它和strip保持通用,但可能不需要。你知道我如何用decode而不是regex实现相同的输出吗?似乎没有你尝试使用的编解码器:
Python 2.6.6 (r266:84292, Mar 25 2011, 19:36:32)
[GCC 4.5.2] on linux2