Это кажется самой сложной проблемой, с которой я сталкивался, но, возможно, я делаю это сложнее, чем нужно.Мне нужно удалить неизвестное количество вложенных элементов, которые могут быть или не быть в начале предложения.Элементы span содержат несколько слов в скобках.Итак, в предложении:
(криптография, сленг) Интернет-брандмауэр.
(криптография, сленг) выглядит следующим образом:
<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