如何使用ruby正则表达式查找整数

如何使用ruby正则表达式查找整数,ruby,regex,Ruby,Regex,我在寻找一个字符串中第一个完整的数字。我不是在找第一个数字,而是整个第一个数字。例如,w134fklj342中的第一个数字是134,1235alkj9342klja9034中的第一个数字是1235 我尝试使用\d,但我不确定如何将其扩展为包含多个数字(不指定数字的长度)。我想,您正在寻找此正则表达式 \d+ “加”表示“一个或多个”。这个正则表达式将匹配字符串中的所有数字,所以选择第一个 strings = ['w134fklj342', '1235alkj9342klja9034'] st

我在寻找一个字符串中第一个完整的数字。我不是在找第一个数字,而是整个第一个数字。例如,w134fklj342中的第一个数字是134,1235alkj9342klja9034中的第一个数字是1235


我尝试使用\d,但我不确定如何将其扩展为包含多个数字(不指定数字的长度)。

我想,您正在寻找此正则表达式

\d+
“加”表示“一个或多个”。这个正则表达式将匹配字符串中的所有数字,所以选择第一个

strings = ['w134fklj342', '1235alkj9342klja9034']

strings.each do |s|
  puts s[/\d+/]
end
# >> 134
# >> 1235

演示:

我想,您正在寻找这个正则表达式

\d+
“加”表示“一个或多个”。这个正则表达式将匹配字符串中的所有数字,所以选择第一个

strings = ['w134fklj342', '1235alkj9342klja9034']

strings.each do |s|
  puts s[/\d+/]
end
# >> 134
# >> 1235

演示:

理解正则表达式最简单的方法是将每个正则表达式都看作一个字符;e、 g:
\d
[1234567890]
[0-9]
将匹配一位数字

要展开这一个字符,您有两个基本选项:
*
+

  • *
    将匹配字符0次或更多次
  • +
    将匹配它一次或多次
就像塞吉奥说的,你应该用
\d+
来匹配许多数字


一般来说,正则表达式的优秀教程:

理解正则表达式最简单的方法是将每个正则表达式都看作一个字符;e、 g:
\d
[1234567890]
[0-9]
将匹配一位数字

要展开这一个字符,您有两个基本选项:
*
+

  • *
    将匹配字符0次或更多次
  • +
    将匹配它一次或多次
就像塞吉奥说的,你应该用
\d+
来匹配许多数字


一般来说,正则表达式的优秀教程:

@sergio tulentsev是正确的。但是您应该阅读以了解更多关于Regexp提供的内容。@sergio tulentsev是正确的。但是您应该阅读以了解更多关于Regexp提供的内容。正确,但更简单的是:s[/\d+/]正确,但更简单的是:s[/\d+/]