在删除MATLAB字符串中的额外空格时是否可以忽略标点符号?我目前正在实现此代码:
str = " Hello , how are you? ";
output = regexprep(strtrim(str), '\s+', ' ');
但是输出给了我
"Hello , how are you?"
而不是
"Hello, how are you?"
如果我使用类似的字符串/字符数组,例如'我可以帮你吗? ',我在问号前加了一个额外的空格。我相信isspace和isletter可以通过矢量化来使用,但我不确定如何嵌套函数调用。
答案 0 :(得分:2)
为了帮助您的示例并在标点符号前修剪空格,您可以使用:
regexprep(s, ' [,.?!]', '${strtrim($0)}')
您可能需要使用方括号中的其他标点符号进行扩展。