Ruby's regex syntax supports a Free-Spacing
mode.
When this mode is enabled, all the literal whitespace in the regular expression
is ignored and comments can be included at the end of lines. This is enabled by
appending the x
option at the end of the regex.
Here is a regex with Free-Spacing mode enabled (see the x
at the end).
simple_email = /\A.+@.+\z/x
Though it's enabled, it is not really being used.
Here is the same regular expression, but this time I've spaced it out and added comment annotation to make the regex easier to understand.
simple_email = /
\A # beginning of the string
.+ # any opening characters
@ # the email's `@` symbol
.+ # the rest of the email
\z # the end of the string
/x
To be sure the extra space and comments aren't messing things up, here is some code to test it out.
test_emails = [
'taco',
'[email protected]',
'[email protected]',
'@'
]
test_emails.each do |email|
if (simple_email =~ email) == 0
puts "#{email} looks like an email"
else
puts "#{email} may not be an email"
end
end