Visual Studio Search:単語を検索しますが、特定の単語が前に付いている場合は検索しません[重複]

Jan 12 2021

たとえば、Visual Studioのテキスト検索を使用して、テキストファイル内の「ホットドッグ」内の「犬」ではなく「犬」のすべてのインスタンスを検索しようとしています。私は同様の質問を見つけて、受け入れられた答えを試しました。

\w+(?<!hot) dog

「ホットドッグ」は除外されますが、問題は、他の場合のすべての可能な組み合わせに一致することです。つまり、「猟犬」の場合、「次を検索」を7回クリックして次のインスタンスに移動する必要があります。これは、VSがその1つのインスタンスの次のすべての部分で停止するためです。

hunting dog
unting dog
nting dog
ting dog
ing dog
ng dog
g dog

また、前に何も付いていない場合(最初の単語)、単語と一致しません。どうすれば式を変更できますか?

回答

Jossnix Jan 12 2021 at 14:43

問題は完全には明確ではありません。「犬」という単語を検索する場合は、検索でそれだけを指定する必要があります。前の単語+犬を見つけたい場合は、

\b\w+\s+dog

「ホット」という言葉を除外するには

(?<!hot )\bdog
MichałTurczyn Jan 12 2021 at 14:54

パターンを試す (?!<hot )dog

パターンの説明:

(?!<hot ) -ネガティブルックビハインド-先行するものがないことを主張する hot

dog-dog文字通り一致する

デモ