Matlab:用于删除连续空格和标点符号的正则表达式

时间:2014-03-13 01:40:26

标签: regex matlab

我有一个需要清理的字符串数组。例如,我有:

textfile =

I would like to play in the woods on a shine bright day which comes soon enough.

I would like to play in the woods on a shine bright day which comes soon enough.

我想要消除多个连续的空格。换句话说,我希望每个单词之间只有1个空格。此外,我想替换除字符之外的所有内容,因此没有标点符号或任何不是A-Z或a-Z的特殊字符。

第二次尝试:

regexprep(textfile,'[`~!@#$%^&*()-_=+[{]}\|;:\''<,>.?/','')

但它不会取代期间所以我假设我做错了什么?有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

如果你可以忍受两次通过,你可以先替换

\s+

使用' '(单个空格),然后替换

[^A-Za-z ]

什么都没有

(根据OP的评论进行编辑 - 所以现在这是正确的顺序)

答案 1 :(得分:1)

尝试将否定的字符类与要保留的内容一起使用,并用唯一的空格替换它。

regexprep(textfile,'[^A-Za-z]+',' ')