Tôi hơi bối rối với một regex cụ thể có vẻ đơn giản.Regex đơn giản, khớp với bất kỳ chuỗi nào có ít nhất một dấu gạch ngang
Kết quả trùng khớp phải là chuỗi chỉ có a-z, A-Z, 0-9 và phải có ít nhất một lần xuất hiện của ký tự '-' ở bất kỳ đâu trong chuỗi.
Tôi có [a-zA-Z0-9-]+
nhưng vấn đề là, nó cũng sẽ khớp với những người không có ký tự '-'.
ABC123-ABC //should match
ABC123ABC //shouldn't match.
Cảm ơn, hãy làm s có được thực sự dài gió nếu bạn đã yêu cầu n số dấu gạch nối? – maxp
Chỉ cần thông tin: regex đầu tiên được cung cấp trong bài đăng này ('^ [a-zA-Z0-9] * - [a-zA-Z0-9] * $') khớp với _exactly_ một dấu gạch ngang, vì vậy nếu bạn muốn _at ít nhất_ một dấu gạch ngang (như đã nêu trong bài đăng gốc của bạn), bạn nên quấn nó giống như các ví dụ khác và thêm ** + **: '^ ([a-zA-Z0-9] * - [a-zA-Z0-9] *) + $ ' –
Điều này thậm chí sẽ khớp với chuỗi có chỉ. Nếu chúng ta luôn luôn cần phải bao bọc giữa các chữ cái thì chúng ta có thể sử dụng ([a-zA-Z0-9] + - [a-zA-Z0 -9] +) Tôi đã thử nó nhưng nó không phù hợp một cách chính xác. Đó là một phần của chuỗi một lần phù hợp sẽ không được xem xét cho lần thứ hai? Xin lỗi tôi mới trong regex và bối rối. –