Я хочу:
000123 -> 123 000123000 -> 123000 0123 -> 123 0102030 -> 102030
Я хочу удалить только верхнюю группу 0 в одной строке, у кого хороший метод, спасибо!
Это должно помочь вам:
irb(main):002:0> a = "000123" => "000123" irb(main):003:0> a.sub(/^(0+)/,"") => "123" irb(main):004:0> "000123000".sub(/^(0+)/,"") => "123000"
Я использовал Рубуляр , чтобы получить это
str.gsub /^0+/, ''
Предполагается, что в этой строке только числовые символы:
"000123".to_i.to_s => "123"
, но если есть вероятность, что это будут буквенные символы, это даст неожиданные результаты.
Вы можете использовать:
sub(/^0+/,'')
Здесь ^0+ соответствует одному или нескольким 0 в начале. sub метод, заменяющий '' вместо совпадающей строки.
^0+
0
sub
def method(str) str.sub(/^0+/,'') # use .to_i if you want the result as integer. end method('000123') => 123 method('00012300') => 12300 method('0123') => 123 method('0102030') => 102030