การค้นหา Visual Studio: ค้นหาคำ แต่ไม่พบเมื่อนำหน้าด้วยคำเฉพาะ [ซ้ำ]

Jan 12 2021

ตัวอย่างเช่นฉันพยายามค้นหาอินสแตนซ์ทั้งหมดของ "dog" แต่ไม่ใช่ "dog" ใน "hot dog" ในไฟล์ข้อความด้วยการค้นหาข้อความของ Visual Studio ฉันพบคำถามที่คล้ายกันและลองใช้คำตอบที่ยอมรับ

\w+(?<!hot) dog

ไม่รวม "ฮอทดอก" แต่ปัญหาคือตรงกับชุดค่าผสมที่เป็นไปได้ทั้งหมดสำหรับกรณีอื่น ๆ นั่นคือสำหรับ "สุนัขล่าสัตว์" ฉันต้องคลิก "ค้นหาถัดไป" 7 ครั้งเพื่อไปยังอินสแตนซ์ถัดไปเนื่องจาก VS หยุดสำหรับส่วนต่อไปนี้ทั้งหมดของอินสแตนซ์นั้น

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ตามตัวอักษร

การสาธิต