Có thể sử dụng cụm từ thông dụng để khớp với tất cả các từ nhưng chỉ khớp một từ duy nhất? Tôi biết có những cách khác để làm điều này tuy nhiên tôi quan tâm đến việc biết nếu điều này là có thể với việc sử dụng một biểu thức chính quy.Cụm từ thông dụng - khớp với tất cả các từ nhưng chỉ khớp các từ duy nhất một lần
Ví dụ tôi hiện đang có các biểu hiện sau:
(\w+\b)(?!.*\1)
và chuỗi sau:
glass shoes door window door glasses. window glasses
Đối với hầu hết các phần biểu thức hoạt động và phù hợp với những lời sau đây:
shoes
door
window
glasses
Có hai vấn đề với điều này:
Kết quả phù hợp cho chuỗi con đang được thực hiện trên "kính" bằng "kính", điều này không chính xác.
"kính" và "kính". nên khớp nhưng hiện tại thì không.
Trận chung kết nên là:
shoes
door
window
glasses
glass
Tôi tự hỏi tại sao '\ 1' dường như không khớp với' \ b' từ nhóm đầu tiên. Không nên '\ 1' khớp với mọi thứ bên trong nhóm và không chỉ' \ w + '? – pemistahl
@ maček Wow! Cảm ơn bạn rất nhiều, tôi đã dành rất nhiều thời gian để cố gắng tìm hiểu điều này! – Isomorph
@PeterStahl Lý do tại sao bạn phải thêm '\ b' là đảm bảo rằng lookahead phủ định khớp với toàn bộ một từ và không chỉ là một chuỗi con, theo mặc định nó khớp với các phần tử. – Isomorph