我需要删除所有前导和尾随的非数字字符。这就是我提出的。是否有更好的实施。
puts s.gsub(/^\D+/,'').gsub(/\D+$/,'')
答案 0 :(得分:7)
而不是消除你不想要的东西,通常更清楚地选择你想要的东西(使用括号)。此外,这只需要一次正则表达式评估:
s.match(/^\D*(.*?)\D*$/)[1]
或者,这个方便的简写:
s[/^\D*(.*?)\D*$/, 1]
答案 1 :(得分:3)
也许是一个#gsub(/(^\D+)|(\D+$)/, '')
另外,如果有疑问的话Rubular。