Viết một regex đơn giản, nhưng tôi chưa bao giờ giỏi về điều này.Java Regex a-z, A-Z, 0-9 và (.) (_) (-)
Điều tôi đang cố gắng làm là kiểm tra chuỗi (tên tệp) để đảm bảo chỉ chứa ký tự a-z, A-Z, 0-9 hoặc ký tự đặc biệt (_) hoặc dấu gạch ngang (-).
Dưới đây là những gì tôi có
if(filename.length() < 1 || !filename.matches("^[a-zA-Z0-9[.][_][-]]+"))
return false;
else
return true;
này xuất hiện để làm việc, nhưng không trông rất thanh lịch với tôi. Có cách nào tốt hơn/dễ đọc hơn để viết cái này không?
Cảm ơn trước! Chỉ cần cố gắng tìm hiểu cách viết những trình điều khiển này tốt hơn.
-sẽ
Những người khác đã trả lời câu hỏi regex, nhưng tôi tò mò tại sao bạn kiểm tra độ dài của chuỗi lớn hơn 1. Nếu chuỗi là "", nó không thể khớp '" ^. + "' – kojiro
Điểm tốt. Nó còn sót lại từ một lần thực hiện trước đó. Cảm ơn! –