Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 删除MATLAB字符串中的多余空格,同时忽略标点符号_Regex_String_Matlab_Vectorization - Fatal编程技术网

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

Regex 删除MATLAB字符串中的多余空格,同时忽略标点符号,regex,string,matlab,vectorization,Regex,String,Matlab,Vectorization,在删除MATLAB字符串中的额外空格时,是否可以忽略标点符号?我目前正在实施此代码: str = " Hello , how are you? "; output = regexprep(strtrim(str), '\s+', ' '); 但产出给了我很多 "Hello , how are you?" 而不是 "Hello, how are you?" 如果我使用类似的字符串/字符数组,如“我能为您效劳吗?”,我在问号前有一个额外的空格。我相信isspace和Isleter可以通过矢量化

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

str = " Hello , how are you? ";
output = regexprep(strtrim(str), '\s+', ' ');
但产出给了我很多

"Hello , how are you?"
而不是

"Hello, how are you?"

如果我使用类似的字符串/字符数组,如“我能为您效劳吗?”,我在问号前有一个额外的空格。我相信isspace和Isleter可以通过矢量化来使用,但我不确定如何嵌套函数调用。

要帮助您完成示例并在使用标点符号之前修剪空格,请执行以下操作:

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

您可能需要在方括号中添加额外的标点符号进行展开。

要帮助您完成示例并在使用标点符号之前修剪空格,请执行以下操作:

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

您可能需要在方括号中添加额外的标点符号进行展开。

与其“忽略”标点符号以查找较长的空格,为什么不将“一些空格后跟标点符号”的所有实例仅替换为标点符号?您可以很容易地找到与regexp的匹配项,这是有意义的。我试图这么做,但我不知道如何删除单词和标点符号之间的多个空格。我将对此进行研究。与其“忽略”标点符号来寻找更长的空格,为什么不将“一些空格后跟标点符号”的所有实例都替换为标点符号呢?您可以很容易地找到与regexp的匹配项,这是有意义的。我试图这么做,但我不知道如何删除单词和标点符号之间的多个空格。我会调查的。回答得很好,现在我只需要在标点符号后处理空格。非常感谢。回答得很好,现在我只需要在标点符号后处理空格。非常感谢。