Regular expression to match an HTML comment
This snippet uses the non-greedy matcher, and the "m" option to treat strings as multi-lines, so it may not work with all regex parsers.
1 2 /\<!\s*--(.*?)(--\s*\>)/m 3 4 Examples in Ruby IRB: 5 irb(main):029:0> html = <<-EOL 6 irb(main):030:0" <!-- First Comment -- 7 irb(main):031:0" --> Second Comment <!-- 8 irb(main):032:0" -- Third Comment --> 9 irb(main):033:0" EOL 10 => "<!-- First Comment --\n --> Second Comment <!--\n -- Third Comment -->\n" 11 irb(main):075:0> m = html.match(/\<!\s*--(.*?)(--\s*\>)/m) 12 => #<MatchData:0x15915a4> 13 irb(main):076:0> m[0] 14 => "<!-- First Comment --\n -->" 15 irb(main):077:0> m[1] 16 => " First Comment --\n " 17