Visual Studio Araması: bir kelimeyi bulma, ancak önünde belirli bir kelime [yineleme] olduğunda bulamama

Jan 12 2021

Örneğin, Visual Studio'nun metin aramasıyla bir metin dosyasında "köpek" in tüm örneklerini bulmaya çalışıyorum, ancak "sosisli sandviç" içindeki "köpek" i bulmaya çalışmıyorum. Benzer bir soru buldum ve kabul edilen cevabını denedim.

\w+(?<!hot) dog

"Hot dog" u hariç tutar, ancak sorun, diğer durumlar için tüm olası kombinasyonlarla eşleşmesidir. Yani, "av köpeği" için, sonraki örneğe geçmek için "Sonrakini bul" u 7 kez tıklamam gerekiyor, çünkü VS, bu tek örneğin aşağıdaki bölümlerinin tümü için durur.

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

Ayrıca, önünde herhangi bir şey yoksa (ilk kelime) kelimeyle eşleşmez. İfadeyi nasıl değiştirebilirim?

Yanıtlar

Jossnix Jan 12 2021 at 14:43

Soru tamamen net değil. "Köpek" kelimesini bulmak istiyorsanız, aramada yalnızca onu belirtmeniz gerekir. Önceki kelimeyi bulmak istiyorsanız + köpeği kullanın

\b\w+\s+dog

"Sıcak" kelimesini hariç tutmak için

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

Deseni dene (?!<hot )dog

Desen açıklaması:

(?!<hot ) - olumsuz arkaya bak - öncekinin olmadığını ileri sür hot

dog- dogtam anlamıyla eşleştir

Demo