Dấu chấm có phải được thoát trong lớp ký tự (dấu ngoặc vuông) của biểu thức chính quy không?


95

Dấu chấm .trong biểu thức chính quy khớp với bất kỳ ký tự đơn nào. Để regex khớp với một dấu chấm, dấu chấm phải được thoát ra:\.

Nó đã được chỉ ra cho tôi rằng bên trong dấu ngoặc vuông []một dấu chấm không phải được thoát ra. Ví dụ, biểu thức: [.]{3}sẽ khớp với ...chuỗi.

Phải không? Và nếu vậy, nó có đúng với tất cả các tiêu chuẩn regex không?


Đúng vậy, đúng là DOT (và hầu hết các ký tự đặc biệt khác) không cần phải thoát trong lớp ký tự.
anubhava

3
Không có "tiêu chuẩn" cho cú pháp biểu thức chính quy.
BoltClock

3
@BoltClock có một số: posix, posix mở rộng, perl. Xem en.wikipedia.org/wiki/Regular_expression#Standards
Dariusz

1
@Dariusz có phải bạn là người đã bỏ phiếu cho tôi vì bạn nghĩ rằng tôi đã sai? nếu như vậy, tôi muốn 2 điểm của tôi sao :)
Paul Samsotha

@peeskillet vâng, tôi đã sửa. Thx và xin lỗi.
Dariusz

Câu trả lời:


134

Trong một lớp nhân vật (dấu ngoặc vuông) bất kỳ ký tự trừ ^, -, ]hoặc \là một chữ.

Trang web này là một tài liệu tham khảo tuyệt vời và có nhiều thông tin về các sắc thái của các hương vị regex khác nhau. http://www.regular-expressions.info/refcharclass.html


3
Nó thực sự phụ thuộc vào cách ngôn ngữ xử lý nó, nhưng đối với hầu hết các ngôn ngữ, điều này đúng.
Patrick Oscity

40
-cũng có nghĩa đen nếu đó là giá trị cuối cùng
CONvid 19

16
Và ^ là chữ nếu nó không phải là nhân vật đầu tiên
Nigel B. Peck

1
Nếu $ trông giống như một biến, nó cũng cần được thoát. Ví dụ: [$.]
W3Coder

1
@PedroLobito Và nếu đó là lần đầu tiên, tôi nghĩ
Tim Malone
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.