Tôi không hiểu vấn đề một cách chính xác:
Nếu bạn muốn kết hợp "tuyệt vời" hay "reat" bạn có thể thể hiện điều này bằng một mô hình như:
"g?reat"
Điều này đơn giản nói rằng phần "reat" phải tồn tại và "g" là tùy chọn.
Điều này phù hợp với "reat" và "great" nhưng không "ăn", bởi vì "r" đầu tiên trong "reat" là bắt buộc.
Nếu bạn có quá lời "tuyệt vời" và "tốt" và bạn muốn kết hợp cả hai với một tùy chọn "g" bạn có thể viết những dòng này như thế này:
(g?reat|g?ood)
Và nếu bạn muốn bao gồm một ranh giới từ như:
\b(g?reat|g?ood)
Bạn nên biết rằng điều này sẽ không khớp với bất kỳ thứ gì như "thở" vì bạn có "reat" nhưng "r" không nằm trong ranh giới từ vì "b ".
Vì vậy, nếu bạn muốn kết hợp toàn bộ từ có chứa một liên kết chuỗi "reat" hoặc "ood" thì bạn nên thử:
"\b\w*?(reat|ood)\w+\b"
này lần đọc: 1. Bắt đầu với một ranh giới từ bắt đầu phù hợp với bất kỳ số từ-ký tự, nhưng không được gready. 2. Kết hợp "reat" hoặc "ood" đảm bảo rằng chỉ những từ phù hợp có chứa một trong số chúng. 3. Kết hợp bất kỳ số ký tự từ nào sau "reat" hoặc "ood" cho đến khi đạt đến ranh giới từ tiếp theo.
này sẽ phù hợp:
"tốt lành", "tốt", "ood" (nếu một từ hoàn chỉnh)
Nó có thể được đọc như sau: Hãy cho tôi tất cả các từ hoàn chỉnh có chứa "ood" hoặc "reat".
Đó có phải là những gì bạn đang tìm kiếm không?
Nguồn
2009-03-30 19:40:55
Bạn có muốn khớp "oo", "o" hoặc "t" không? – jpalecek
Còn ooooooooooooooooooooooooooooooooooooooooooooooooooo? –
Tôi thấy rằng việc sử dụng "tốt | tuyệt vời" khi mô hình hoạt động, điều này có ổn không? Tại sao một số ví dụ của mọi người lại có nhiều đánh dấu hơn? –