re = /<(?<first>[^>]+)>.*?<\/(\k<first>)>/
str = '<p>normal</p><p><strong>gras</strong></p><p><em>italique</em></p><p><strong><em>gras italique</em></strong></p><p><s>barré</s></p><p><em><s>barré italique</s></em></p><p><strong><s>barré gras</s></strong></p><p><strong><em><s>barré gras italique</s></em></strong></p><p><u>souligné</u></p><p><em><u>souligné italique</u></em></p><p><strong><u>souligné gras</u></strong></p><p><strong><em><u>souligné gras italique</u></em></strong></p><p><s><u>souligné barré</u></s></p><p><em><s><u>souligné barré italique</u></s></em></p><p><strong><s><u>souligné gras barré</u></s></strong></p><p><strong><em><s><u>souligné gras barré italique</u></s></em></strong></p><p><a href="google.com" rel="noopener noreferrer" target="_blank">lien</a></p><p><br></p>'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html