2017-10-06 22 views
0

MATLAB文字列の余分なスペースを削除すると句読点を無視できますか?私は現在、このコードを実装しています:句読点を無視してMATLAB文字列の余分なスペースを削除します

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

をしかし、「私はあなたを助けることができるように私は類似文字列/ char配列を使用している場合、出力は私

"Hello , how are you?" 

ではなく

"Hello, how are you?" 

を与えていますか? '、私は疑問符の前に余分なスペースを得ます。私はisspaceとisletterはベクトル化によって使用できると信じていますが、関数呼び出しをどのように入れ子にするのかは分かりません。あなたの例を支援し、あなたが使用することができます句読点の前にスペースをトリミングする

+1

長い隙間を見つけるために句読点を無視するのではなく、「句読点に続くいくつかのスペース」のすべてのインスタンスを句読記号だけで置き換えるのはなぜですか?正規表現との一致を簡単に見つけることができます – Wolfie

+0

意味があります。私はそれをやろうとしていましたが、単語と句読点の間の複数のスペースを取り除く方法を理解できませんでした。私はそれを調べます。 – collegesista

答えて

2

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

あなたは角括弧内に追加句読点を展開する必要があるかもしれません。

+0

偉大な答え、今私は句読記号の後にスペースで作業する必要があります。ありがとうございました! – collegesista

関連する問題