次の例を考えます。
str = 'deriv*dot(N,iv)';
expr = 'iv';
idx = regexp(str,expr);
これにより、4と13のidxが返されます。単語の一部ではない「iv」のみを見つけるにはどうすればよいですか。
exprのルックアラウンド演算子をいじってみましたが、希望する結果が得られませんでした。助けてくれてありがとう。
Matlab には独自の単語境界エスケープ シーケンスがあるようです。
expr = '\<iv\>';
これは、単語を文字、数字、およびアンダースコアで構成されるものとして定義します。独自の定義 (文字のみ) が必要な場合は、ルックアラウンドが必要です。
expr = '(?<![a-zA-Z])expr(?![a-zA-Z])';