Các regex phổ biến nhất gợi ý để loại bỏ ký tự đặc biệt có vẻ là này -Regex để loại bỏ charaters đặc biệt đối với một chuỗi đa ngôn ngữ
preg_replace('/[^a-zA-Z0-9]/', '', $string);
Vấn đề là nó cũng loại bỏ ký tự không phải tiếng Anh.
Có regex nào xóa các ký tự đặc biệt trên tất cả các ngôn ngữ không? Hoặc giải pháp duy nhất là đối sánh rõ ràng từng ký tự đặc biệt và xóa chúng?
Cảm ơn! Tôi hiểu rằng '\ P' là một ký tự không có thuộc tính Unicode. Bạn có thể giải thích '{Xan}'. –
@ A.Jesin: chữ hoa P chỉ được sử dụng để loại bỏ một lớp ký tự unicode. Ví dụ '\ p {Latin}' là một lớp ký tự cho tất cả các chữ cái Latinh (như '[a-zA-Z]' nhưng với dấu trọng âm), Nếu bạn muốn phủ nhận nó để có được tất cả không phải là chữ cái Latinh, bạn viết '\ P {Latin}' –
@ A.Jesin: Bạn có thể tìm tất cả các lớp ký tự unicode trong tài liệu này: http://pcre.org/pcre.txt –