2015-07-01 15 views
6

Chỉ cần chạy vào một chút vấn đề với regex của tôi. Tôi muốn kết hợp tất cả nội dung bên trong các thẻ khung hình vuông.Regex để phù hợp với tất cả các ký tự và dòng mới?

Đây là regex của tôi: /(?:\[.*])(.*)(?:\[\/.*])/

Tôi đang chạy nó chống lại nội dung này:

[TITLE]More Things[/TITLE] 
[BODY]This is not working 
still not working 
nope, hasn't magically started working 

I'd like to match double carriage returns[/BODY] 

Nó sẽ chỉ phù hợp với các thẻ dòng duy nhất vào lúc này. Bất kỳ trợ giúp được đánh giá cao, cảm ơn.

+0

Bạn đã lồng thẻ? Bạn có muốn nhận các văn bản được gắn thẻ lồng nhau không? –

+0

Không, tôi sẽ không bao giờ sử dụng các thẻ lồng nhau với hệ thống này. – ToXic73

Trả lời

2

Nếu bạn đang sử dụng php, bạn chỉ cần thêm s công cụ sửa đổi. Và cũng tốt hơn là nắm bắt thẻ mở và tham chiếu nó trong khi viết mẫu cho thẻ đóng.

/(?:\[([^\]]*)\])(.*?)(?:\[\/\1\])/s 

Nếu bạn đang ở trên javascript thì bạn phải cần bật mỗi . trong regex trên để [\S\s]

DEMO

+0

Tôi đang sử dụng php, tuy nhiên khi tôi sử dụng công cụ sửa đổi của s, nó bù đắp các kết quả mà tôi nghĩ? Nó có trả về các kết quả khác nhau không? – ToXic73

+0

Tôi đang làm 'preg_match_all()' và dường như chỉ trả về một kết quả. – ToXic73

+0

kiểm tra cập nhật của tôi .. –

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