对于简单的构建操作,使用正则表达式作为索引即可。
[link]-
# 差
/(first|second)/
# 好
/(?:first|second)/
避免使用 Perl 风格的、用以代表最近的捕获组的特殊变量(比如$1
、$2
等)。使用Regexp.last_match(n)
来替代。
[link]
避免使用数字来获取分组。因为很难明白它们代表的含义。使用命名分组来替代。
[link]/(regexp)/ =~ string
...
process Regexp.last_match(1)
# 好
/(?<meaningful_var>regexp)/ =~ string
...
process meaningful_var
对于复杂的正则表达式,使用x
修饰符。这种做法不但可以提高可读性,而且允许你加入必要的注释。注意的是,空白字符会被忽略。
[link]regexp = /
start # some text
\s # white space char
(group) # first group
(?:alt1|alt2) # some alternation
end
/x