如何将这一行从PHP转换为Ruby?

时间:2011-11-12 11:39:34

标签: php ruby-on-rails ruby

将以下行从PHP转换为Ruby时遇到问题:

strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), trim($str)));

是否有可能像在这里一样在一行中完成这个?

1 个答案:

答案 0 :(得分:2)

str.strip.gsub(/[^a-zA-Z0-9 -]/, '').gsub(/[ -]+/, '-').gsub(/^-|-$/, '').downcase

可以进一步简化为:

str.strip.gsub(/[ -]+/, '-').gsub(/[^a-z \d-]|^-|-$/i, '').downcase