Ruby gsub:有更好的方法

时间:2009-12-22 03:20:46

标签: ruby

我需要删除所有前导和尾随的非数字字符。这就是我提出的。是否有更好的实施。

puts s.gsub(/^\D+/,'').gsub(/\D+$/,'')

2 个答案:

答案 0 :(得分:7)

而不是消除你不想要的东西,通常更清楚地选择你想要的东西(使用括号)。此外,这只需要一次正则表达式评估:

s.match(/^\D*(.*?)\D*$/)[1]

或者,这个方便的简写:

s[/^\D*(.*?)\D*$/, 1]

答案 1 :(得分:3)

也许是一个#gsub(/(^\D+)|(\D+$)/, '')

另外,如果有疑问的话Rubular