0

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

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

4

2 回答 2

4

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

\d+

“加”的意思是“一个或多个”。此正则表达式将匹配字符串中的所有数字,因此请选择第一个。

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

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

演示:http ://rubular.com/r/YE8kPE2SyW

于 2012-04-17T00:08:15.820 回答
1

理解正则表达式的最简单方法是认为 eachbit 是一个字符;例如:\d[1234567890][0-9]将匹配一位数字。

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

  • *将匹配字符 0 次或更多次
  • +将匹配一次或多次

就像塞尔吉奥说的那样,你应该用它\d+来匹配许多数字。

一般的正则表达式的优秀教程:http ://www.regular-expressions.info/tutorial.html

于 2012-04-17T09:32:13.657 回答