unescape HTML : Regexps Group « Development « Ruby






unescape HTML


def unescapeHTML(string) 
    str = string.dup 
    str.gsub!(/&(.*?);/n) { 
        match = $1.dup 
        case match 
        when /\Aamp\z/ni then '&' 
        when /\Aquot\z/ni then '"' 
        when /\Agt\z/ni then '>' 
        when /\Alt\z/ni then '<' 
        when /\A#(\d+)\z/n then Integer($1).chr 
        when /\A#x([09af]+)\z/ni then $1.hex.chr 
        end 
    } 
    str 
end 
puts unescapeHTML("1&lt;2 &amp;&amp; 4&gt;3") 
puts unescapeHTML("&quot;A&quot; = &#65; = &#x41;") 

 








Related examples in the same category

1.An unescaped vertical bar(|) matches either the regular expression that precedes it or the regular expression that follows it.
2.use parentheses to group terms within a regular expression
3.\1 refers to the match of the first group
4.Backslash Sequences in the Substitution