проверить номер и убрать начальные нули - PullRequest
19 голосов
/ 14 августа 2010

Я хочу проверить переменную в ruby, чтобы увидеть, имеет ли она два ведущих нуля (00). Если это так, то 00 следует удалить

Как это можно сделать

Ответы [ 5 ]

28 голосов
/ 14 августа 2010

Довольно легко преобразовать в целое число и преобразовать обратно в строку:

irb(main):007:0> s="009" ; s.to_i.to_s
=> "9"
irb(main):008:0> s="004" ; s.to_i.to_s
=> "4"
irb(main):009:0> s="00999" ; s.to_i.to_s
=> "999"

или, для чисел с плавающей запятой:

irb(main):003:0> s="000.45" ; s.to_f.to_s
=> "0.45"
23 голосов
/ 12 апреля 2014

ОП явно попросил удалить два нуля, но для других, которые заинтересованы в удалении всех лидирующих нулей и могут быть не так сильны в регулярных выражениях, вы можете сделать это вместо этого:

str.sub!(/^[0]+/,'')

+ - это специальный символ регулярного выражения, который применяется к 1 или более.

23 голосов
/ 14 августа 2010

Если вы говорите о строках:

str.sub!(/^00/, "")

Регулярное выражение /^00/ соответствует, если строка начинается с двух нулей. sub! примет совпадение (два нуля) и заменит их пустой строкой.

2 голосов
/ 09 марта 2018

Рубин 2,5

str.delete_prefix("00") # Delete exactly two zeros
2 голосов
/ 13 февраля 2018
  • ^ означает начать с
  • * означает ноль или более

str.sub!(/^0*/, '')

Это регулярное выражение может использоваться с "1234", "01234", "001234", "0001234" и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...