2

次の例を考えます。

str = 'deriv*dot(N,iv)';
expr = 'iv';
idx = regexp(str,expr);

これにより、4と13のidxが返されます。単語の一部ではない「iv」のみを見つけるにはどうすればよいですか。

exprのルックアラウンド演算子をいじってみましたが、希望する結果が得られませんでした。助けてくれてありがとう。

4

1 に答える 1

6

Matlab には独自の単語境界エスケープ シーケンスがあるようです。

expr = '\<iv\>';

これは、単語を文字、数字、およびアンダースコアで構成されるものとして定義します。独自の定義 (文字のみ) が必要な場合は、ルックアラウンドが必要です。

expr = '(?<![a-zA-Z])expr(?![a-zA-Z])';
于 2012-12-13T20:56:58.850 に答える