删除MATLAB字符串中的多余空格,同时忽略标点符号

时间:2017-10-06 02:39:28

标签: regex string matlab vectorization

在删除MATLAB字符串中的额外空格时是否可以忽略标点符号?我目前正在实现此代码:

str = " Hello , how are you? ";
output = regexprep(strtrim(str), '\s+', ' ');

但是输出给了我

"Hello , how are you?"

而不是

"Hello, how are you?"

如果我使用类似的字符串/字符数组,例如'我可以帮你吗? ',我在问号前加了一个额外的空格。我相信isspace和isletter可以通过矢量化来使用,但我不确定如何嵌套函数调用。

1 个答案:

答案 0 :(得分:2)

为了帮助您的示例并在标点符号前修剪空格,您可以使用:

regexprep(s, ' [,.?!]', '${strtrim($0)}')

您可能需要使用方括号中的其他标点符号进行扩展。