Допустим, у меня есть следующий HTML-код:
<ul><li>Bullet 1.</li>
<li>Bullet 2.</li>
<li>Bullet 3.</li>
<li>Bullet 4.</li>
<li>Bullet 5.</li></ul>
Я хочу с ним заменить любые точки, вопросительные знаки или восклицательные знаки самим собой и конечной звездочкой. , который находится внутри узла HTML, а затем преобразовать обратно в HTML. Итак, результат будет следующим:
<ul><li>Bullet 1.*</li>
<li>Bullet 2.*</li>
<li>Bullet 3.*</li>
<li>Bullet 4.*</li>
<li>Bullet 5.*</li></ul>
Я немного возился с этим в IRB, но не могу понять. вот код, который у меня есть:
html = "<ul><li>Bullet 1.</li>
<li>Bullet 2.</li>
<li>Bullet 3.</li>
<li>Bullet 4.</li>
<li>Bullet 5.</li></ul>"
doc = Nokogiri::HTML::DocumentFragment.parse(html)
doc.search("*").map { |n| n.inner_text.gsub(/(?<=[.!?])(?!\*)/, "#{$1}*") }
Возвращаемый массив правильно проанализирован, но я просто не уверен, как преобразовать его обратно в HTML. Есть ли другой метод, который я могу использовать для изменения внутреннего_текста как такового?