[previous] [up] [next]     [contents] [index]
Next: System Utilities Up: PLT MzScheme: Language Manual Previous: Custodians

Regular Expressions

MzScheme provides built-in support for regular expression pattern matching on strings, implemented by Henry Spencer's package. Regular expressions are specified as strings, using the same pattern language as the Unix utility egrep. String-based regular expressions can be compiled into a regexp value for repeated matches.

figure58780


Figure 10.1: Grammar for regular expressions

The format of a regular expression is specified by the grammar in Figure 10.1. A few subtle points about the regexp language are worth noting:

The regular expression procedures are:

Examples:

  (define r (regexp "(-[0-9]*)+")) 
  (regexp-match r "a-12-345b") ; => ("-12-345" "-345") 
  (regexp-match-positions r "a-12-345-b") ; => ((1 . 9) (5 . 9)) 
  (regexp-match "x+" "12345") ; => #f 
  (regexp-replace "me" "me casa" "su") ; => "su casa" 
  (define r2 (regexp "([Mm])e ([a-zA-Z]*)")) 
  (define insert "\\1y \\2") 
  (regexp-replace r2 "Me Casa" insert) ; => "My Casa" 
  (regexp-replace r2 "me cerveza Me Me Me" insert) ; => "my cerveza Me Me Me"
  (regexp-replace* r2 "me cerveza Me Me Me" insert) ; => "my cerveza My Me Me" 

[previous] [up] [next]     [contents] [index]
Next: System Utilities Up: PLT MzScheme: Language Manual Previous: Custodians

PLT