Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 优雅的方式切割领先的0';在一系列的数字中?_Ruby_Regex_String_Integer - Fatal编程技术网

Ruby 优雅的方式切割领先的0';在一系列的数字中?

Ruby 优雅的方式切割领先的0';在一系列的数字中?,ruby,regex,string,integer,Ruby,Regex,String,Integer,一个数字以字符串的形式出现,比如“000105”,我正试图找到一种忽略前导零的好方法。一个正则表达式浮现在脑海中,但有时它们会变得难以阅读。我现在做的是: stack = "000105" # => "000105" overflow = stack.to_i.to_s # => "105" 有没有更简单/优雅的方法?将此字符串转换为整数并返回字符串感觉很笨拙。您可以使用 ^0+ 替换为空字符串。请参阅演示 您可以使用 ^0+ 替换为空字符串

一个数字以字符串的形式出现,比如
“000105”
,我正试图找到一种忽略前导零的好方法。一个正则表达式浮现在脑海中,但有时它们会变得难以阅读。我现在做的是:

stack = "000105"               # => "000105"
overflow = stack.to_i.to_s     # => "105"

有没有更简单/优雅的方法?将此字符串转换为整数并返回字符串感觉很笨拙。

您可以使用

^0+
替换为
空字符串
。请参阅演示


您可以使用

^0+
替换为
空字符串
。请参阅演示


基于@vks answer,您可以在ruby中执行类似操作

stack.sub!(/^0+/,'')

基于@vks answer,您可以在ruby中执行类似的操作

stack.sub!(/^0+/,'')

我会这样做:

overflow = stack.sub(/^0+/, '')
或者干脆
sub如果要更改堆栈本身,请执行以下操作:

stack.sub!(/^0+/, '')

我会使用
sub
而不是
gsub
,因为它只需要匹配一次。

我会这样做:

overflow = stack.sub(/^0+/, '')
或者干脆
sub如果要更改堆栈本身,请执行以下操作:

stack.sub!(/^0+/, '')

我会使用
sub
而不是
gsub
,因为它只需要匹配一次。

什么是?
gsub
gsub之间的差异?在
ruby
中是否有类似
sub
的函数,因为这不需要全局执行。@AvinashRaj--
gsub
不会永久更改正在调用它的对象/变量。大多数以
结尾的“bang”方法将永久更改它们。当您只是想暂时更改计算内容,但仍然不想永久更改变量本身时,可以使用.gsub。这是什么意思?
gsub
gsub之间的差异?在
ruby
中是否有类似
sub
的函数,因为这不需要全局执行。@AvinashRaj--
gsub
不会永久更改正在调用它的对象/变量。大多数以
结尾的“bang”方法将永久更改它们。当您只是想暂时更改计算内容,但仍然不想永久更改变量本身时,可以使用.gsub。