Skip to content
instance method

Regexp#match

(::interned? str, ?::int offset) -> ::MatchData?
[T] (::interned? str, ?::int offset) { (::MatchData matchdata) -> T } -> T?
(nil, ?::int offset) ?{ (::MatchData matchdata) -> void } -> nil
match(string, offset = 0) → matchdata or nil
match(string, offset = 0) {|matchdata| ... } → object

With no block given, returns the MatchData object that describes the match, if any, or nil if none; the search begins at the given character offset in string:

Example
/abra/.match('abracadabra')      # => #<MatchData "abra">
/abra/.match('abracadabra', 4)   # => #<MatchData "abra">
/abra/.match('abracadabra', 8)   # => nil
/abra/.match('abracadabra', 800) # => nil

string = "\u{5d0 5d1 5e8 5d0}cadabra"
/abra/.match(string, 7)          #=> #<MatchData "abra">
/abra/.match(string, 8)          #=> nil
/abra/.match(string.b, 8)        #=> #<MatchData "abra">

With a block given, calls the block if and only if a match is found; returns the block’s value:

Example
/abra/.match('abracadabra') {|matchdata| p matchdata }
# => #<MatchData "abra">
/abra/.match('abracadabra', 4) {|matchdata| p matchdata }
# => #<MatchData "abra">
/abra/.match('abracadabra', 8) {|matchdata| p matchdata }
# => nil
/abra/.match('abracadabra', 8) {|marchdata| fail 'Cannot happen' }
# => nil

Output (from the first two blocks above):

Example
#<MatchData "abra">
#<MatchData "abra">

 /(.)(.)(.)/.match("abc")[2] # => "b"
 /(.)(.)/.match("abc", 1)[2] # => "c"
See also #match? #inspect #hash #named_captures also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0