Tôi gặp sự cố khi xác định tên gói Java hợp lệ bằng Python. Đây là mã:Python regex cho tên gói Java
packageName = "com.domain.lala" # valid, not rejected -> correct
#packageName = ".com.domain.lala" # invalid, rejected -> correct
#packageName = "com..domain.lala" # invalid, not rejected -> incorrect
#packageName = "com.domain.lala." # invalid, not rejected -> incorrect
matchObject = re.match("([a-z_]{1}[a-z0-9_]*(\.[a-z_]{1}[a-z0-9_]*)*)",
packageName)
if matchObject is not None:
print packageName + " is a package name!"
else:
print packageName + " is *not* a package name!"
Utilities.show_error("Invalid Package Name", "Invalid package name " + packageName + "!", "Ok", "", "")
Tên gói phải bắt đầu bằng chữ thường hoặc dấu gạch dưới và mỗi dấu chấm phải được theo sau ít nhất một chữ thường hoặc gạch dưới một lần nữa. Tất cả các ký tự khác có thể là chữ thường, chữ số hoặc dấu gạch dưới. Không cho phép chạy các dấu chấm và nó có thể không kết thúc bằng hoặc bắt đầu bằng dấu chấm.
Làm cách nào để giải quyết vấn đề này?
Bạn không cần điểm đánh dấu bắt đầu khi sử dụng 're.match'. – interjay
@@ interjay ohh .. Tôi không phải là một anh chàng python. Đây là regex chung. – Gopi