Как удалить первую группу '0' в одной строке - PullRequest
0 голосов
/ 14 декабря 2011

Я хочу:

000123 -> 123

000123000 -> 123000

0123 -> 123

0102030 -> 102030

Я хочу удалить только верхнюю группу 0 в одной строке, у кого хороший метод, спасибо!

Ответы [ 4 ]

6 голосов
/ 14 декабря 2011

Это должно помочь вам:

irb(main):002:0> a = "000123"
=> "000123"
irb(main):003:0> a.sub(/^(0+)/,"")
=> "123"
irb(main):004:0> "000123000".sub(/^(0+)/,"")
=> "123000"
2 голосов
/ 14 декабря 2011

Я использовал Рубуляр , чтобы получить это

str.gsub /^0+/, ''
0 голосов
/ 14 декабря 2011

Предполагается, что в этой строке только числовые символы:

"000123".to_i.to_s
=> "123"

, но если есть вероятность, что это будут буквенные символы, это даст неожиданные результаты.

0 голосов
/ 14 декабря 2011

Вы можете использовать:

sub(/^0+/,'')

Здесь ^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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...