Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 将字符串拆分为文本和整数_Ruby_String - Fatal编程技术网

Ruby 将字符串拆分为文本和整数

Ruby 将字符串拆分为文本和整数,ruby,string,Ruby,String,我想知道是否有一种快速的方法可以解决ruby中的问题,比如下面的例子 范例 t12=>text=t,值=12 ad15=>text=ad,value=15 acbds1687=>text=acbds,值=1687 我认为正则表达式可以解决这个问题,但我不确定正则表达式是否可以解决这个问题。如下所示: irb(main):001:0> "t12".split(/(?<=[a-zA-Z])(?=\d)/) => ["t", "12"] 如下图所示: irb(main):001:0

我想知道是否有一种快速的方法可以解决ruby中的问题,比如下面的例子

范例 t12=>text=t,值=12

ad15=>text=ad,value=15

acbds1687=>text=acbds,值=1687

我认为正则表达式可以解决这个问题,但我不确定正则表达式是否可以解决这个问题。

如下所示:

irb(main):001:0> "t12".split(/(?<=[a-zA-Z])(?=\d)/)
=> ["t", "12"]
如下图所示:

irb(main):001:0> "t12".split(/(?<=[a-zA-Z])(?=\d)/)
=> ["t", "12"]

要将字符串解析为类似{:text=>t,:value=>12}的散列,请执行以下操作:

要将字符串解析为类似[t,12]的数组,请执行以下操作:


要将字符串解析为类似{:text=>t,:value=>12}的散列,请执行以下操作:

要将字符串解析为类似[t,12]的数组,请执行以下操作:


如果您给create一个捕获组,它将保留在分割中,因此这段代码非常流畅:

text, value = string.split(/(\d+)/)
或者你可以用切片!方法:

text  = 'sagasg125512'
value = text.slice!(/\d+/)
p text  #=> "sagasg"
p value #=> "125512"

如果您给create一个捕获组,它将保留在分割中,因此这段代码非常流畅:

text, value = string.split(/(\d+)/)
或者你可以用切片!方法:

text  = 'sagasg125512'
value = text.slice!(/\d+/)
p text  #=> "sagasg"
p value #=> "125512"

在您的示例中,字符串中没有空格。读者会认为这是一个要求,这不是问题。但是,如果您想要一个更通用的解决方案,那么现在是时候通过编辑来说明这一点,并给出所给字符串的其他示例以及要提取的内容。我有一个与字母和整数组合的字符串,我想将其拆分。问题是它彼此接近,很难分割,我不想计算每个字符串元素。在您的示例中,字符串中没有空格。读者会认为这是一个要求,这不是问题。但是,如果您想要一个更通用的解决方案,那么现在是时候通过编辑来说明这一点,并给出所给字符串的其他示例以及要提取的内容。我有一个与字母和整数组合的字符串,我想将其拆分。问题是它彼此接近,很难分割,我不想计算每个字符串元素。真棒:像个魔咒一样工作