文字列から数字を抜き出す
Perlで文字列から数字を抜き出すのはこんな感じか?
#!/usr/bin/perl use strict; use warnings; my $DIGITS = '(\d+)'; my @pieces; # 文字列を数字と数字以外に分ける。 @pieces = split(/$DIGITS/, '123a4bcd56e'); print join(", ", map{"'$_'"} @pieces), "\n"; #=> '', '123', 'a', '4', 'bcd', '56', 'e' # 文字列から数字を抜き出す。 @pieces = map{/$DIGITS/g} '123a4bcd56e'; print join(", ", @pieces), "\n"; #=> 123, 4, 56
目からウロコ
http://d.hatena.ne.jp/s-n-k/20080630/1214836026
必ず偶数番目に数値がくるっていうのが目からウロコ
Rubyでもやってみる。おお、確かに目からウロコ。
RUBY_VERSION #=> "1.8.6" DIGITS = /(\d+)/ pieces = '123a4bcd56e'.split(DIGITS) #=> ["", "123", "a", "4", "bcd", "56", "e"] pieces = 'abc123a4bcd56'.split(DIGITS) #=> ["abc", "123", "a", "4", "bcd", "56"]
文字列から数値を抜き出すのはこんな感じか。
RUBY_VERSION #=> "1.8.6" DIGITS = /\d+/ pieces = '123a4bcd56e'.scan(DIGITS).map{|i| i.to_i} #=> [123, 4, 56] pieces = 'abc123a4bcd56'.scan(DIGITS).map{|i| i.to_i} #=> [123, 4, 56]
勉強になった。