正则表达式 (Regular Expressions)
避免使用
$1-9
因为可能难以辨认出是哪一个,取个名。
[link]# 错误
/(regexp)/ =~ string
...
process $1
# 正确
/(?<meaningful_var>regexp)/ =~ string
...
process meaningful_var
小心使用
^
和$
因为它们匹配的是
行头/行末,而不是某个字符串的结尾. 如果你想匹配整个字符串, 用:\A
和\z
.[link]string = "some injection\nusername"
string[/^username$/] # matches
string[/\Ausername\z/] # don't match
使用
x
修饰符在复杂的正则表达式上。
这使得它更可读, 并且你可以加有用的注释。只是要注意空格会被忽略。[link]regexp = %r{
start # some text
\s # white space char
(group) # first group
(?:alt1|alt2) # some alternation
end
}x