Regular Expressions are a powerful tool to process text and extract information from it. The idea behind regular expressions is that you can define an expression to check if an input string matches a certain pattern. And you can manipulate or extract pieces of information from the string according to your needs. It’s very useful because instead of coding a long program to manipulate a string, you just have to create an expression.
In Ruby, the =~ operator is used for matching regular expressions. Example:
>> sentence = "This is just a test." => "This is just a test." >> sentence =~ /^[A-Z].*[?!.]$/ => 0
In the example above, the regular expression matches the string provided (remember that in Ruby zero evaluates to true). The regular expression in the example is
/^[A-Z].*[?!.]$/ . When using the
=~ operator, the regular expression must be provided between slashes. This expression checks the following pattern:
^: this character anchors the pattern to the beginning of the string.
[A-Z]: the first character in the sentence has to be in the range A-Z (uppercase letters only).
.*: the dot matches any character, and the asterisk means that this pattern can repeat zero or many times. Therefore, it will match any sequence of characters, or no characters at all.
[?!.]: matches one ocurrence of any of these punctuation marks.
$: anchors the pattern to the end of the string.
So, in resume, this regular expression will match any string that starts with an uppercase letter (A-Z) and finishes with a punctuation mark (dot, interrogation or exclamation). Note that the square brackets are used to define ranges or lists of characters in the expression.
You can find more information about Ruby’s regular expressions at http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm.