用逗号替换空格和换行

时间:2020-08-07 08:01:17

标签: python regex string

我有一个像这样的字符串:

文件名='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'

3 个答案:

答案 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'