Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
367 views
in Technique[技术] by (71.8m points)

Extract number from string in Ruby

I'm using this code:

s = line.match( /ABCD(d{4})/ ).values_at( 1 )[0] 

To extract numbers from strings like:

ABCD1234
ABCD1235
ABCD1236

etc.

It works, but I wonder what other alternative I have to to this in Ruby?

My code:

ids = [] 
someBigString.lines.each {|line|
   ids << line.match( /ABCD(d{4})/ ).values_at( 1 )[0] 
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There are many Ruby ways as per http://www.ruby-forum.com/topic/125709

  1. line.scan(/d/).join('')
  2. line.gsub(/[^0-9]/, '')
  3. line.gsub(/[^d]/, '')
  4. line.tr("^0-9", '')
  5. line.delete("^0-9")
  6. line.split(/[^d]/).join
  7. line.gsub(/D/, '')

Try each on you console.

Also check the benchmark report in that post.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...