正则表达式 (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$/] # matchesstring[/\Ausername\z/] # don't match
使用
x修饰符在复杂的正则表达式上。
这使得它更可读, 并且你可以加有用的注释。只是要注意空格会被忽略。[link]regexp = %r{start # some text\s # white space char(group) # first group(?:alt1|alt2) # some alternationend}x
