Tìm kiếm Visual Studio: tìm một từ, nhưng không phải khi đứng trước một từ cụ thể [trùng lặp]

Jan 12 2021

Ví dụ: tôi đang cố gắng tìm tất cả các trường hợp của "dog", nhưng không phải "dog" trong "hot dog" trong một tệp văn bản bằng tìm kiếm văn bản của Visual Studio. Tôi đã tìm thấy một câu hỏi tương tự và đã thử câu trả lời được chấp nhận của nó.

\w+(?<!hot) dog

Nó không loại trừ "hot dog", nhưng vấn đề là nó phù hợp với tất cả các kết hợp có thể có cho các trường hợp khác. Đó là, đối với "chó săn", tôi phải nhấp vào "Tìm tiếp theo" 7 lần để chuyển sang phiên bản tiếp theo, vì VS dừng lại cho tất cả các phần sau của phiên bản đó.

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

Ngoài ra, nó không khớp với từ, nếu nó không đứng trước bất cứ thứ gì (từ đầu tiên). Làm cách nào để thay đổi biểu thức?

Trả lời

Jossnix Jan 12 2021 at 14:43

Câu hỏi không hoàn toàn rõ ràng. Nếu bạn muốn tìm từ "dog", thì trong tìm kiếm bạn chỉ cần chỉ định nó. Nếu bạn muốn tìm từ trước đó + con chó thì hãy sử dụng

\b\w+\s+dog

Để loại trừ từ "nóng"

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

Thử mẫu (?!<hot )dog

Giải thích mẫu:

(?!<hot ) - cái nhìn tiêu cực - khẳng định những gì thu được không phải là hot

dog- khớp theo dognghĩa đen

Bản giới thiệu