Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method

String#=~

(::Regexp regex) -> ::Integer?
[T] (::String::_MatchAgainst[self, T] object) -> T
self =~ other → integer or nil

When other is a Regexp:

Examples:

Example
'foo' =~ /f/ # => 0
$~           # => #<MatchData "f">
'foo' =~ /o/ # => 1
$~           # => #<MatchData "o">
'foo' =~ /x/ # => nil
$~           # => nil

Note that string =~ regexp is different from regexp =~ string (see Regexp#=~):

Example
number = nil
'no. 9' =~ /(?<number>\d+)/ # => 4
number                      # => nil # Not assigned.
/(?<number>\d+)/ =~ 'no. 9' # => 4
number                      # => "9" # Assigned.

When other is not a Regexp, returns the value returned by other =~ self.

Related: see Querying.

See also #=== #[] #== #[]= also in 4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0