Regular Expressions
Regular Expressions
- Avoid using
$1-9 as it can be hard to track
what they contain. Named groups can be used instead.
[link]
# bad
/(regexp)/ =~ string
...
process $1
# good
/(?<meaningful_var>regexp)/ =~ string
...
process meaningful_var
- Be careful with
^ and $ as they
match start/end of line, not string endings. If you want to match the whole
string use: \A and \z.[link]
string = "some injection\nusername"
string[/^username$/] # matches
string[/\Ausername\z/] # don't match
- Use
x modifier for complex regexps. This makes
them more readable and you can add some useful comments. Just be careful as
spaces are ignored.[link]
regexp = %r{
start # some text
\s # white space char
(group) # first group
(?:alt1|alt2) # some alternation
end
}x