Visual Studio Search:単語を検索しますが、特定の単語が前に付いている場合は検索しません[重複]
たとえば、Visual Studioのテキスト検索を使用して、テキストファイル内の「ホットドッグ」内の「犬」ではなく「犬」のすべてのインスタンスを検索しようとしています。私は同様の質問を見つけて、受け入れられた答えを試しました。
\w+(?<!hot) dog
「ホットドッグ」は除外されますが、問題は、他の場合のすべての可能な組み合わせに一致することです。つまり、「猟犬」の場合、「次を検索」を7回クリックして次のインスタンスに移動する必要があります。これは、VSがその1つのインスタンスの次のすべての部分で停止するためです。
hunting dog
unting dog
nting dog
ting dog
ing dog
ng dog
g dog
また、前に何も付いていない場合(最初の単語)、単語と一致しません。どうすれば式を変更できますか?
回答
Jossnix
問題は完全には明確ではありません。「犬」という単語を検索する場合は、検索でそれだけを指定する必要があります。前の単語+犬を見つけたい場合は、
\b\w+\s+dog
「ホット」という言葉を除外するには
(?<!hot )\bdog
MichałTurczyn
パターンを試す (?!<hot )dog
パターンの説明:
(?!<hot )
-ネガティブルックビハインド-先行するものがないことを主張する hot
dog
-dog
文字通り一致する
デモ