假设我有一个String
:
someString = "1374j03d42s23dc"
我想找到非数字字符的第一个索引。在这种情况下,那将是4
.我怎样才能用regex
做到这一点?
(我不太擅长regex
,所以如果答案可以解释发生了什么,那就太好了)
someString =~ /D/
# => 4
........
除了sawa的解决方案: 当您希望代码更具可读性时,也可以使用 String#index
:
string = '1374j03d42s23dc'
string.index(/D/)
#=> 4
/D/
匹配任何非数字(常见正则表达式元字符列表)
尝试:
someString.each_char.with_index { |c,i| puts i if c == someString.scan(/D+/)[0] }