-
đặc biệt trong lớp nhân vật. Nó được sử dụng để xác định phạm vi như bạn đã thực hiện với a-z
.
Để phù hợp với một chữ -
bạn cần phải hoặc thoát khỏi nó hoặc đặt nó như vậy mà nó sẽ không hoạt động như phạm vi điều hành:
^[a-zA-Z \-,.()]*$
^^ escaping \
hoặc
^[-a-zA-Z ,.()]*$
^placing it at the beginning.
hoặc
^[a-zA-Z -,.()-]*$
^placing it at the end.
và thú vị
^[a-z-A-Z -,.()]*$
^placing in the middle of two ranges.
Trong trường hợp thức -
là nơi giữa a-z
và A-Z
vì cả hai nhân vật xung quanh -
(một trong những mà chúng tôi muốn để điều trị theo nghĩa đen) đó là z
và A
đã tham gia vào phạm vi, các -
được xử lý theo nghĩa đen nữa .
Trong tất cả các phương pháp được đề cập, phương pháp thoát được đề xuất vì nó làm cho mã của bạn dễ đọc và dễ hiểu hơn. Bất cứ ai nhìn thấy \
sẽ mong đợi rằng một lối thoát được dự định. Đặt -
vào đầu (cuối) sẽ tạo ra các vấn đề nếu sau này bạn thêm một ký tự trước (sau) nó trong lớp ký tự mà không cần thoát khỏi -
do đó tạo thành một dải.
Ký tự thoát là mã thông báo regex:.() –
@ Mathias E: Bên trong một nhóm ký tự, bạn không phải thoát khỏi tất cả các thẻ regex. – unholysampler
Đó có phải là biểu thức chính quy mà bạn đang thực sự sử dụng không? – Gumbo