我目前正在使用python,我有一个问题: 如果我们有一个由多个字符分隔的字符串,例如:
l = ['0 , hellp,\t2,\t BB , -\n', ' 1 ,\t \t knock \t , BB,N,- ]
我希望以这种方式展示它:
0,hellp,2,BB,-
1,knock,BB,N,-
如果我想使用拆分,编码将如何? 我已经尝试过这段代码:
l = ['0 , hellp,\t2,\t BB , -\n', ' 1 ,\t \t knock \t , BB,N,- ]
replacements=('\t',' ' ,'\n')
for r in replacements :
l = l.replace(r,' ')
words =l.split()
print(words)
但它并没有像我想要的那样成功
答案 0 :(得分:1)
使用正则表达式。您可以使用vespa-configserver-remove-state
来删除多个字符。
<强>实施例强>
re.split
<强>输出:强>
import re
l = ['0 , hellp,\t2,\t BB , -\n', ' 1 ,\t \t knock \t , BB,N,-' ]
for i in l:
val = ",".join(re.split(",\t", i.strip())).replace(" ", "") #split by comma(,) & tab(\t)
print(re.sub('\s+',"", val)) #replace space
答案 1 :(得分:0)
你可以试试这个:
import re
l = ['0 , hellp,\t2,\t BB , -\n', ' 1 ,\t \t knock \t , BB,N,- ']
new_l = [','.join(filter(None, re.split('[\s,\t\n]+', i))) for i in l]
输出:
['0,hellp,2,BB,-', '1,knock,BB,N,-']
答案 2 :(得分:0)
可以使用re.subn
相当简单地表达。
>>> import re
>>> l = ['0 , hellp,\t2,\t BB , -\n', ' 1 ,\t \t knock \t , BB,N,- ']
>>> for item in l:
... re.subn(r'\s', '', item)[0]
...
'0,hellp,2,BB,-'
'1,knock,BB,N,-'