我有一个像这样的字符串:
文件名='file_1,file2,file3 \ nfile4'
我想用空格替换空格,并用逗号换行
到目前为止,我已经尝试过:
file_name = re.sub(r"\s+", "", filenames, flags=re.UNICODE)
正在返回:
file_name ='file_1,file2,file3file4'
但我想要:
filenames = 'file1,file2,file3,file4'
答案 0 :(得分:3)
尝试一下:
file_name = re.sub(r"[,\s]+", ",", filenames, flags=re.UNICODE)
答案 1 :(得分:1)
您的书面要求和所需的输出有所不同。
首先,您需要将'\ n'替换为',',使其看起来像您想要的输出。
第二,您说的是要有空格,但没有空格,但所需的输出中仍然有空格。
这是对'\ n'的修复:
doc = 'file_1, file2, file3\nfile4'
doc = doc.replace('\n', ', ')
print(doc)
file_1, file2, file3, file4
如果您要使用没有空格的空格:
doc = doc.replace(' ', '')
print(doc)
file_1,file2,file3,file4
答案 2 :(得分:1)
一个非正则表达式的解决方案是在将所有\n
替换为','
之后拆分,修剪和合并。这样可以防止删除所需的空格(例如,如果文件名包含空格)
filenames = 'file_1, file2, file3\nfile4, file 5'
','.join(filter(None, [s.strip() for s in filenames.replace('\n', ',').split(',')]))
# 'file_1,file2,file3,file4,file 5'
filter(None, [...])
将删除任何空字符串,例如,如果您有'foo,bar,,hello\n\nworld'