Bạn có thể sử dụng một negated character class đây:
[^a-zA-Z0-9]
Trên regex sẽ phù hợp với một nhân vật duy nhất mà không thể là một chữ thường hoặc chữ hoa Latin hoặc một số.
Các ^
vào lúc bắt đầu của lớp nhân vật (phần giữa [
và ]
) phủ nhận lớp hoàn chỉnh để nó phù hợp với bất cứ điều gì không trong lớp, thay vì hành vi lớp nhân vật bình thường.
Để làm cho nó hữu ích, có thể bạn muốn một trong những:
Zero hoặc nhiều ký tự như
[^a-zA-Z0-9]*
Dấu (*
) ở đây có nghĩa rằng phần trước có thể được lặp đi lặp lại zero hoặc nhiều lần hơn.
Một hoặc nhiều như vậy nhân vật
[^a-zA-Z0-9]+
Các cộng (+
) ở đây có nghĩa rằng phần trước có thể được lặp đi lặp lại một hoặc nhiều lần.
Một đầy đủ (có thể rỗng) chuỗi, bao gồm duy nhất của nhân vật như vậy
^[^a-zA-Z0-9]*$
Ở đây các nhân vật ^
và $
có một ý nghĩa như anchors, phù hợp với sự bắt đầu và kết thúc của chuỗi, tương ứng. Điều này đảm bảo rằng toàn bộ chuỗi bao gồm các ký tự không nằm trong lớp ký tự đó và không có ký tự nào khác đến trước hoặc sau chúng.
Một đầy đủ (không rỗng) chuỗi, bao gồm duy nhất của nhân vật như vậy
^[^a-zA-Z0-9]+$
Lập một chút, điều này sẽ không (và không thể) đảm bảo rằng bạn sẽ không sử dụng bất kỳ ký tự nào khác, có thể từ các tập lệnh khác. Chuỗi аеΒ
sẽ hoàn toàn hợp lệ với cụm từ thông dụng ở trên, vì nó sử dụng các chữ cái từ tiếng Hy Lạp và chữ Kirin. Hơn nữa có những cạm bẫy khác. Chuỗi á
sẽ vượt qua biểu thức chính quy, trong khi chuỗi ́a
sẽ không (vì nó tạo chữ á từ chữ a và dấu kết hợp dấu phụ).
Vì vậy, các lớp nhân vật bị từ chối phải được thực hiện cẩn thận vào những thời điểm.
Tôi cũng có thể sử dụng chữ số từ các kịch bản khác, nếu tôi muốn: ١٢٣
:-)
Bạn có thể sử dụng lớp nhân vật
[^\p{L&}\p{Nd}]
nếu bạn cần phải chăm sóc trong những điều trên.
Cảm ơn bạn. Cảm ơn bạn. Cảm ơn bạn. Cảm ơn bạn. :) – sukumar
Rất tiếc ... Bộ nhớ ngón tay. :-(cố định :-) – beggs