3.2. Compiling Regular ExpressionsRegular expressions can be compiled using the class method Regexp.compile (which is really only a synonym for Regexp.new). The first parameter is required and may be a string or a regex. (Note that if the parameter is a regex with options, the options will not carry over into the newly compiled regex.) pat1 = Regexp.compile("^foo.*") # /^foo.*/ pat2 = Regexp.compile(/bar$/i) # /bar/ (i not propagated) The second parameter, if present, is normally a bitwise OR of any of the following constants Regexp::EXTENDED, Regexp::IGNORECASE, and Regexp::MULTILINE. Additionally, any non-nil value will have the result of making the regex case-insensitive; we do not recommend this practice. options = Regexp::MULTILINE || Regexp::IGNORECASE pat3 = Regexp.compile("^foo", options) pat4 = Regexp.compile(/bar/, Regexp::IGNORECASE) The third parameter, if it is specified, is the language parameter, which enables multibyte character support. It can take any of four string values: "N" or "n" means None "E" or "e" means EUC "S" or "s" means Shift-JIS "U" or "u" means UTF-8 Of course, regular expression literals may be specified without calling new or compile, simply by enclosing them in slash delimiters. pat1 = /^foo.*/ pat2 = /bar$/i For more information, see Chapter 4. |