Next Previous Contents

38. <6.2>: Regulære uttrykk

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.


Next Previous Contents