Tôi đang cố gắng kết hợp một tìm kiếm biểu thức chính quy tìm thấy bất kỳ hai (hoặc nhiều) từ nằm trong n (ví dụ: nhiều hơn 1, ít hơn 5) từ của nhau. Mục tiêu là tìm kiếm trên một văn bản văn xuôi và tìm thấy sự lặp lại không cần thiết của các từ gần nhau.
Ví dụ: trong văn bản sau, tìm kiếm sẽ xác định "gói:"
Người đưa thư giao một gói, và gói rất nặng.
Thách thức là hai từ có thể là bất kì hai từ, nhưng phải là tương tự hai từ. Tôi đã cố gắng tìm ra cách để làm việc với *
hoặc là +
(Tôi khá mới đối với các biểu thức thông thường), nhưng tất nhiên, các ký tự đại diện sẽ khớp với mọi từ, vì vậy chúng không hoạt động. Có cấu trúc tìm kiếm nào không $1 within n of $1
Điều đó sẽ dịch sang regex?
tr -s '[[:punct:][:space:]]' '\n' < file
phân chia một tập tin thành các từ (từ stackoverflow.com/questions/15501652/ ) và đường ống xuyên quasort -u
. Sau đó, bạn có thể sử dụng tập lệnh để lặp lại từng từ / mục từ đầu ra thành biểu thức chính quy ở trên và in mọi kết quả trả vềTrue
. Tôi sẽ thử và kiểm tra điều này vào ngày mai; nên khá dễ dàng để viết một tập lệnh hoặc plugin chăm sóc nó.