2010-11-30 5 views
2

저는 Ruby on Rails 2.3.8에서 작업 중이며 사용자가 게시물을 입력하는 웹 사이트를 가지고 있습니다. 각각에는 기본 페이지에 표시된 간단한 설명이 있습니다. 이 설명은 원본에서 자동으로 작성되지만 잘 렸으 므로 최대 240 자까지 도달합니다.프로그래밍 방식으로 이미지 및 비디오를 html로부터 제거

문제는 이러한 설명에 이미지 나 비디오가 포함될 수 있으며 이러한 문자열을자를 때 표시하지 않기를 바랍니다. 나는 HTML을 구문 분석 Hpricot 플러그인을 사용하고, 다음과 같은 정규 표현식 이미지를 구문 분석 :이 이미지를 제거하고

body = Hpricot.parse(html_body) 
body = body.to_s.gsub(/<img .*?>/, '') 

,하지만 때로는 그것이 "이미지"또는 "IMG"를 말한다 예를 들어, 대신 문자열을 잎 이미지가 있던 곳. 예를 들어, 설명에서 이미지를 삭제 한 후 느슨한 "스팸"텍스트가 남아있는 것을 볼 수 있습니다. 어쩌면 정규식이 올바르지 않을 수도 있습니다.

누구도 이미지를 제거하기위한 올바른 정규식인지, 그리고 HTML에서 비디오를 아십니까?

+0

왜 콘텐츠에 html을 추가하지 않는 것이 좋을까요? 후에 당신이 원하는 것을 피하기 위해 몇 가지 멀티 gsub을 할 수 있습니다. – shingara

+0

무엇을 피합니까? 사용자가 이미지와 동영상을 삽입하길 원하지만 홈페이지의 간단한 설명이 아닌 게시물의 페이지에 표시되어야합니다. –

답변

1

img공백으로으로 검색됩니다.

<img과 그 외 모든 내용을 >까지 가져 와서 >을 잡고 싶지 않으십니까?

소스 입력없이 작동하는 것이 어렵다.

<img([^>])+ 

주의 : 중첩 태그는 작동하지 않습니다.

관련 문제