我正在清理文本文件并编写正则表达式以满足我的需要。然而,一个错误正在蔓延,我无法理解。
示例文字:
In the spring of 2014
预期结果:
In,the,spring,of,2014
但我的输出抛出:
In,the,spring,of,
2014
当我从文件中删除所有\ n,\ r,\ t时,我不明白为什么2014会进入换行符。这发生在我的文本块中的所有数字。任何一个词都会有所帮助。
编辑:我正在使用正则表达式
newline = re.sub("[/ --(),.\n\r\t\\\\]+",",",line)
解决方案:错误是由文本编辑器引起的。我在Mac上使用TextEdit,不知道它为什么显示换行符。 Vim和emacs显示了一个干净的文件。
答案 0 :(得分:2)
>>> import re
>>> pattern = re.compile('\s+')
>>> re.sub(pattern, ',', text)
'In,the,spring,of,2014'
>>>
或
>>> ','.join(text.split(' '))
'In,the,spring,of,2014'
答案 1 :(得分:0)
您可能有一个不间断的空间 \xA0
(\x20
是常用空间)。
正则表达式: [/\x20\xA0--(),.\n\r\t\\\\]+