Next Previous Contents

37. <5.2>: Regulære uttrykk

Regulære uttrykk (regular expressions) er en gjenganger blant skriptingsspråkene som gjør dem så perfekte til tekst-manipulering.

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"></LI>
  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.


Next Previous Contents