假设我有String
:
someString = "1374j03d42s23dc"
我想找到非数字字符的第一个索引。在这种情况下,那将是4
。如何使用regex
?
(我不是很擅长regex
,所以如果答案可以解释发生的事情会很好。
答案 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] }