Written March 7, 2015. Tagged Ruby, Regular expressions.
One of my favorite Ruby methods is String#[]
when given a regular expression:
"fooobar"[/o+/] # => "ooo"
"fooobar"[/o+(.)/, 1] # => "b"
The first form returns the matched part of the string. The second form returns capture group number 1.
For one thing, it's short and sweet.
For another, it's robust. "fooobar".match(/x(.)/)[1]
will raise "undefined method `[]' for nil:NilClass". "fooobar"[/x(.)/, 1]
will just return nil
.
It's a great choice for extracting a regexp match from a string.