【问题标题】:Ruby - get first X characters of a string that are numericRuby - 获取数字字符串的前 X 个字符
【发布时间】:2021-05-17 21:28:57
【问题描述】:

产生这些结果的方法是什么?恐怕我不太擅长正则表达式,也看不到实现这一目标的相对简单的方法

"100124" => "100124"

"100asdf124" => "100"
"1asdf124" => "1"

"100 124" => "100"
"1 124" => "1"

"100.124" => "100"
"1.124" => "1"

更新

这与从字符串中提取数字不同!因为我不想从字符串中提取所有数字,所以只有 FIRST 设置直到某个其他字符或空格或标点符号或其他任何不是数字的东西都会中断它!增加了更多的例子来清楚

【问题讨论】:

  • "100asdf124"[/\d+/] #=> "100".
  • 您也只需在字符串上调用to_i。它将返回可以转换为整数的第一个字符
  • @Intl, a1.to_i #=> 0,它不区分'0a.to_i #=> 0。此外,OP 希望返回一个字符串,而不是一个整数。我假设'a1' 将返回'1'nil,但问题并不清楚。
  • 如果字符串不以数字开头或根本不包含数字,预期的结果是什么?

标签: ruby-on-rails regex ruby


【解决方案1】:

这个方法能解决你的问题吗?

def numeric_prefix(string)
  match = string.match(/^\d+/)
  match[0] if match
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2013-04-03
    • 2015-06-29
    相关资源
    最近更新 更多