class Regexp < Object

A Regexp holds a regular expression, used to match a pattern against strings. Regexps are created using the /.../ and %r{...} literals, and by the Regexp.new constructor.

constants

EXTENDED Ignore spaces and newlines in regexp.
IGNORECASE Matches are case insensitive.
MULTILINE Newlines treated as any other character.

class methods

compile
Regexp.compile( pattern [, options [lang]] ) → aRegexp
Synonym for Regexp.new.
escape
Regexp.escape( aString ) → aNewString
Escapes any characters that would have special meaning in a regular expression. For any string, Regexp.escape(str)=~str will be true.
Regexp.escape('\\*?{}.') \\\\\*\?\{\}\.
last_match
Regexp.last_match → aMatchData
Returns the MatchData object generated by the last successful pattern match. Equivalent to reading the global variable $~. See the reference for the MatchData class.
new
Regexp.new( pattern [, options [lang]] ) → aRegexp
Constructs a new regular expression from pattern, which can be either a String or a Regexp (in which case that regexp's options are not propagated). If options is a Fixnum, it should be one or more of the constants Regexp::EXTENDED, Regexp::IGNORECASE, and Regexp::POSIXLINE, or-ed together. Otherwise, if options is not nil, the regexp will be case insensitive. The lang parameter enables multibyte support for the regexp: `n', `N' = none, `e', `E' = EUC, `s', `S' = SJIS, `u', `U' = UTF-8.
r1 = Regexp.new('^a-z+:\\s+\w+') /^a-z+:\s+\w+/ r2 = Regexp.new(r1, true) /^a-z+:\s+\w+/i r3 = Regexp.new(r2, Regexp::EXTENDED) /^a-z+:\s+\w+/x
quote
Regexp.quote( aString ) → aNewString
Synonym for Regexp.escape.

instance methods

==
rxp == aRegexptrue or false
Equality—Two regexps are equal if their patterns are identical, they have the same character set code, and their casefold? values are the same.
/abc/ == /abc/x false /abc/ == /abc/i false /abc/u == /abc/n false
===
rxp === aStringtrue or false
Case Equality—Synonym for Regexp#=~ used in case statements.
a = "HELLO" case a when /^a-z*$/; print "Lower case\n" when /^A-Z*$/; print "Upper case\n" else; print "Mixed case\n" end

produces:

Upper case
=~
rxp =~ aStringanInteger or nil
Match—Matches rxp against aString, returning the offset of the start of the match or nil if the match failed.
/SIT/ =~ "insensitive" nil /SIT/i =~ "insensitive" 5
~
~ rxpanInteger or nil
Match—Matches rxp against the contents of $_. Equivalent to rxp =~ $_.
$_ = "input data" ~ /at/ 7
casefold?
rxp.casefold? → true or false
Returns the value of the case-insensitive flag.
kcode
rxp.kcode → aString
Returns the character set code for the regexp.
match
rxp.match(aString) → aMatchData or nil
Returns a MatchData object describing the match, or nil if there was no match. This is equivalent to retrieving the value of the special variable $~ following a normal match.
/(.)(.)(.)/.match("abc")[2] "b"
source
rxp.source → aString
Returns the original string of the pattern.
/ab+c/ix.source "ab+c"
Show this content in its own window