2010-01-20 5 views
0

이것은 내가 가지고있는 가장 어려운 문제인 것처럼 보이지만 어쩌면 내가 필요로하는 것보다 더 어렵게 만들고있을 수도 있습니다. 문장의 시작 부분에있을 수도 있고 없을 수도있는 중첩 된 요소를 알 수없는 수만큼 제거해야합니다. span 요소는 괄호 안에 여러 단어를 포함합니다. 그래서 문장에 :Ruby에서 Regex를 사용하여 Nokogiri 요소 제거

(암호 해독, 속어) 인터넷 방화벽.

(암호화, 속어) 다음과 같습니다

<span class="ib-brac"><span class="qualifier-brac">(</span></span><span class="ib-content"><span class="qualifier-content">cryptography<span class="ib-comma"><span class="qualifier-comma">,</span></span> <a href="/wiki/Appendix:Glossary#slang" title="Appendix:Glossary">slang</a></span></span><span class="ib-brac"><span class="qualifier-brac">)</span></span> 

내가 처음이 '('존재 여부 및 그 않는 경우, 제거 여부를 확인하기 위해 정규식과 노코 기리를 사용하는 것이 좋은 해결책을 생각했다 닫는 ')'이 될 때까지 모든 범위,하지만 어떻게 해야할지 모르겠다. 내가 지금 사용하고있는 솔루션은 스팬의 변수 수를 고려하지 않습니다 : 당신이해야 할 노력하고 있지만 그냥두면 코드가 위의 스팬의 변수 번호를 삭제 할 수있는

if definition.inner_html =~ /^<span class/ 
    definition.search("span")[0..4].each do |span| 
    span.remove 
    end 
end 
+0

나는 방법을 즉시 제안하는 대신 달성하려고하는 것이 무엇인지 더 잘 설명해야한다고 생각합니다. 나는 괄호 안에 부분 문자열이있는 문자열을 가지고 있으며 모든 둘러싸고있는 SPAN과 함께 그것을 제거하려고하므로 문제를 이해합니다. –

답변

1

100 % 확인 색인 해제 :

if definition.inner_html =~ /^<span class/ 
    definition.search("span").each do |span| 
    span.remove 
    end 
end 
관련 문제