0

この投稿へのフォローアップの質問があります:特定の単語が存在するが、別の部分的な単語は存在しない場合に一致を除外する正規表現

次の文字列が与えられた場合。

x*vec*grad(vec)

'vec'を見つけるが、'grad(vec)'を見つけるにはどうすればよいですか?

検索式には次のようなものを使う必要があると思いますが、うまくいきません。

vec(?!(?<=grad\(vec))

また、括弧内のスペースも無視したいと思います。つまり、次の場合に機能するはずです。

x*vec*grad( vec )

私はMATLABの正規表現関数を使用しています。ありがとう。

4

1 に答える 1

2

これは c# で動作し、MATLAB に簡単に移植できるはずです。

(?<!grad\()vec

一致しますが、一致vec*gradしませんx*grad(vec)

<!秘訣は、正の後読み ( ) を逆にするタイリングの代わりに、負の後読み ( ) を使用すること<=です。

于 2012-12-14T05:08:38.430 に答える