查找非数字字符的第一个索引

时间:2016-03-09 18:17:03

标签: ruby regex string

假设我有String

someString = "1374j03d42s23dc"

我想找到非数字字符的第一个索引。在这种情况下,那将是4。如何使用regex

执行此操作

(我不是很擅长regex,所以如果答案可以解释发生的事情会很好。

3 个答案:

答案 0 :(得分:3)

someString =~ /\D/
# => 4

........

答案 1 :(得分:3)

除了sawa的解决方案之外:当您希望代码更具可读性时,也可以使用String#index

string = '1374j03d42s23dc'
string.index(/\D/)
#=> 4

/\D/匹配任何非数字(common regexp metacharacters列表)

答案 2 :(得分:0)

尝试:

someString.each_char.with_index { |c,i| puts i if c == someString.scan(/\D+/)[0] }