2010-03-08 39 views
5

Liên quan đến previous question của tôi, tôi có một chuỗi trên định dạng sau:biểu hiện thường xuyên để trích xuất văn bản giữa hai dấu ngoặc vuông hoặc xoăn

this {is} a [sample] string with [some] {special} words. [another one] 

là gì biểu thức chính quy để trích xuất các từ trong một trong hai hình vuông hoặc dấu ngoặc nhọn, tức là.

{is} 
[sample] 
[some] 
{special} 
[another one] 

Lưu ý: Trong trường hợp sử dụng của tôi, không thể lồng nhau. Tôi cũng muốn giữ các ký tự kèm theo, để tôi có thể biết sự khác biệt giữa chúng khi xử lý các kết quả.

+0

gì nếu chuỗi là 'blah [{] blah {]} '? – kennytm

Trả lời

7

Đơn giản chỉ cần hoặc (|) những điều khác nhau mà bạn muốn để phù hợp với nhau:

\[.*?\]|\{.*?\}

2

Cái này dường như làm việc:

[[{].*?[}\]] 

Hoặc cái này:

\[.*?\]|{.*?} 

Nếu bạn muốn nắm bắt những trường hợp nêu trong các ý kiến ​​dưới đây.

Bạn có thể sử dụng trình kiểm tra regex trực tuyến để thử những điều này. Tôi nghĩ rằng http://gskinner.com/RegExr/ là một trong các tùy chọn thân thiện với người dùng hơn.

+1

Điều này sẽ không thành công trong trường hợp [...}. –

+0

Đã chỉnh sửa để xóa một '\' không liên quan. –

+0

@ Robert, ông nói rằng điều đó không xảy ra trong văn bản của ông, phải không? –

Các vấn đề liên quan