2010-03-19 26 views
9

Tôi muốn biểu thức chính quy trong ruby ​​trên đường ray xóa tất cả thẻ html và nội dung của nó khỏi văn bản đã cho.ruby ​​trên đường ray biểu thức chính quy để xóa thẻ html và nội dung của nó khỏi văn bản

Ví dụ, nếu văn bản của tôi là: -INPUT: -

<span id="span_is"><br><br><u><i>Hi</i></u></span> 

sau đó nó sẽ hiển thị chỉ OUTPUT nên thực hiện như sau: -

Hi 

trong ngắn hạn tôi muốn biểu hiện thường xuyên hoặc một chức năng loại bỏ <> và bất kỳ nội dung nào giữa <>.

Cảm ơn & Kính trọng,

Salil Gaikwad

Trả lời

13

Chuỗi của bạn khá đơn giản và giải pháp có thể hoạt động. Tuy nhiên, bạn không nên sáng tạo lại bánh xe. Đường ray đã bao gồm một số mạnh mẽ sanitization helpers.

string = '<span id="span_is"><br><br><u><i>Hi</i></u></span>' 
strip_tags(string) 
+0

chỉ để thêm, nó không loại bỏ các ký tự như   :) – ravi1991

14
'<span id="span_is"><br><br><u><i>Hi</i></u></span>'.gsub(/<\/?[^>]+>/, '') 
+0

Cảm ơn gimmy nó hoạt động cho tôi cảm ơn một triệu. – Salil

+0

Mặc dù câu trả lời được chấp nhận là cách thanh lịch nhất để đi, giải pháp này thực sự phù hợp với nhu cầu của tôi tốt hơn. Cảm ơn bạn! –

1

Đừng làm điều này. Xin vui lòng.

Mặc dù đầu vào mẫu của bạn khá tầm thường, bạn đề cập rằng bạn muốn sử dụng nó trong phạm vi rộng hơn rất nhiều.

http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html

Đối với Ruby, bạn có thể thử sử dụng http://hpricot.com/ để phân tích HTML để thay thế.

+0

Thực ra tôi cần phải giải quyết vấn đề của mình trong thư của tôi khi tôi xem dưới dạng văn bản hiển thị thẻ html. Tôi thay thế chat.text.plain.erb bằng cách trả lời theo jimmy <% = @ chat.gsub (/ <\/?[^>] +> /, '')%> và nó phù hợp với tôi. anyways cảm ơn cho bình luận của bạn. Salil – Salil

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