Python从unicode列表中删除选项卡和托架行

时间:2012-12-19 09:54:21

标签: python unicode str-replace

我已经查看过此前的答案(python how to remove this n from string or listremove a list item from a listpython remove whitespace in string),但无法使解决方案有效。

我有一个包含单个元素的列表,如下所示:

list = [u'\r\n\r\n\r\n            \r\n                \r\n                    \r\n                    123 Main St., Peoria\r\n                \r\n\r\n            \r\n             |\r\n             \r\n                    \r\n                        \r\n                            \r\n                            123-456-789\r\n                        \r\n                    \r\n            \r\n        ']

它有一个地址和一个电话号码,而我想要的就是:

123 Main St., Peoria;123-456-789

我尝过这样的话:

str(list).strip(' \r\n\t')

str(list).replace('\r','')

但它们不起作用,所以我想也许这是一个unicode问题?我该如何解决它?

2 个答案:

答案 0 :(得分:5)

只需将一个元素从列表中取出并替换为:

print lst[0].replace('\r', '').replace('\n', '')

此处无需将列表本身转换为字符串。

在这种情况下,您还可以将unicode.strip.splitlines()合并以从每行中删除空格,然后重新加入:

print u' '.join([l.strip() for l in lst[0].splitlines() if l.strip()])

打印:

123 Main St., Peoria | 123-456-789

答案 1 :(得分:3)

import re

li = [u'\r\n\r\n\r\n \r\n \r\n \r\n 123 Main St., Peoria\r\n \r\n\r\n \r\n |\r\n \r\n \r\n \r\n \r\n 123-456-789\r\n \r\n \r\n \r\n ']
print re.sub(r'\s+', ' ', li[0].replace(' |', ';'))

打印

123 Main St., Peoria; 123-456-789