Regulære uttrykk (regular expressions) er en gjenganger blant skriptingsspråkene som gjør dem så perfekte til tekstmanipulering. Klassen Regexp
samler denne funksjonaliteten på en ryddig måte, men Ruby lar deg også bruke regexp literaler.
1| # Litt HTML tekst å lete i 2| html = '<UL> 3| <LI><IMG SRC="next.gif"> 4| <LI><A HREF="index.html">Hei</A></LI> 5| </UL>' 6| 7| # Den ryddige måten å lage Regexp'er på: 8| r1 = Regexp.new( '<IMG SRC=".*?">' ) 9| puts r1.match( html ).to_s #=> '<IMG SRC="next.gif">' 10| 11| # Regexp-literaler 12| r2 = /<A HREF=".*?">.*?<\/A>/ # slash må escapes 13| puts r2.match( html ).to_s #=> '<A HREF="index.html">Hei</A>' 14| 15| # String-klassen har også en del metoder som tar imot 16| # ett Regexp-objekt, deriblant sub og gsub 17| antall_e = 0 18| "Hvor mange e'er er det i denne setningen?".scan(/e/){ |match| 19| antall_e += 1 20| } 21| puts "Totalt #{antall_e} e'er." #=> Totalt 9 e'er. |
Regulære uttrykk er nesten en vitenskap i seg selv. Dessuten er de omtrent like lesbare som det norske lovverket etter å ha gått igjennom en makuleringsmaskin og bør derfor brukes med omhu.