2012-09-30 30 views
12

Tôi cần phải xóa mọi thứ giữa [ ].Thay thế mọi thứ giữa [và] trong regex java

Ví dụ:

Input của tôi:ab[cd]e

Dự kiến ​​Output:abe.


Tôi đã thử sử dụng \[\] nhưng được báo cáo là chuỗi thoát bất hợp pháp.

Bất kỳ ai cũng có thể giúp tôi với điều này.

P.S .: Tôi đang sử dụng Java 1.7.

+0

Hiện chúng tôi mã của bạn, regex nên làm việc – Bergi

Trả lời

17

Sử dụng String#replaceAll:

String s = "ab[cd]e"; 
s = s.replaceAll("\\[.*?\\]", ""); // abe 

này sẽ thay thế [, ], và tất cả mọi thứ ở giữa với một chuỗi rỗng.

+0

Cảm ơn, nó làm việc –

+1

@SaiSunder: '\\ [' phù hợp với khung vuông bên trái '[ ',' \\] 'khớp với dấu ngoặc vuông bên phải'] 'và'. *? 'khớp với mọi thứ giữa các dấu ngoặc vuông. –

+0

@SaiSunder Đánh dấu câu trả lời là được chấp nhận (nhấp vào dấu kiểm bên dưới điểm của câu trả lời) nếu nó giải quyết được vấn đề của bạn. – Vache

7

Hãy thử phương pháp replaceAll

str = str.replaceAll("\\[.*?\\]","") 
Các vấn đề liên quan