Biểu thức chính quy phù hợp với dấu ngoặc vuông là gì?


95

Tôi muốn một regex khớp với một dấu ngoặc vuông [. Tôi vẫn chưa tìm thấy cái nào. Tôi nghĩ rằng tôi đã thử tất cả các khả năng, nhưng vẫn chưa tìm được cái phù hợp. Regex hợp lệ cho điều này là gì?

Câu trả lời:


111

Làm thế nào về việc sử dụng dấu gạch chéo ngược \phía trước dấu ngoặc vuông. Thông thường dấu ngoặc vuông khớp với một lớp ký tự.


20
Trong trường hợp bạn đang cố gắng viết regex này bằng C #, bạn phải sử dụng \\ trước dấu ngoặc vuông.
Shrewdroid

4
Thực sự tôi không biết nó hoạt động ở đâu và tại sao câu trả lời lại nhận được thứ hạng cao như vậy.
Vitali Pom

45

Hãy thử sử dụng \\[, hoặc đơn giản \[.


15

Nếu bạn muốn so khớp một biểu thức bắt đầu bằng [và kết thúc bằng ], hãy sử dụng \[[^\]]*\].



6

Nói chung, khi bạn cần một ký tự "đặc biệt" trong regexes, chỉ cần đặt trước nó bằng a \. Vì vậy, một nghĩa đen [sẽ là \[.


5

Nếu bạn đang tìm kiếm để tìm thấy cả hai biến thể của dấu ngoặc vuông cùng một lúc, bạn có thể sử dụng mẫu sau đó xác định một loạt các hoặc các [dấu hiệu hoặc các ]dấu hiệu:/[\[\]]/


Bạn có thể bỏ dấu gạch chéo ngược đầu tiên. [[\]]sẽ khớp với một trong hai dấu ngoặc. Trong một số thổ ngữ regex (ví dụ như grep), bạn có thể bỏ qua các dấu chéo ngược trước ]nếu bạn đặt nó ngay sau khi [(vì một lớp nhân vật rỗng sẽ không bao giờ có ích): [][]. Nhưng điều đó không hoạt động trong Java hoặc JavaScript.
cayhorstmann

3

nó hoạt động với một phản ứng trước [?

\[hoặc \\[?


1

Nếu bạn muốn loại bỏ [hoặc ], sử dụng biểu thức: "\\[|\\]".

Hai dấu gạch chéo ngược thoát khỏi dấu ngoặc vuông và dấu gạch ngang là dấu "hoặc".

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.