2011-12-21 4 views
0

나는 Ruby를 처음 사용 중이므로 [ "a" , "3" ]"a[3]"에서 추출하고 싶습니다. 나는 다음을 사용하고 있습니다 :Ruby [3]에서 [ "a", "3"]을 추출하지 말 것.

pin = "a[3]" 
a = Array.new 
a = pin.split(/\[/) 
if a.length == 1 
    return a 
elsif a.length == 2 
    a[1].gsub(/\]/, //) 
    return a 
else 
    raise " Error , Invalid syntax for pin #{pin}. " 
end 

나는이 오류가 무엇입니까 :

t:8:in `gsub': can't convert Regexp into String (TypeError) 

나는 그것을 이해할 수 없었다.

+0

대신'pin = "a [3]"을 의미합니까? – tadman

답변

1

왜 당신이 이런 식으로 원하는 것을 잡아하지 않습니다. 그에 따라 조정하십시오.

8

gsub의 두 번째 인수는 정규식 (//)이 아닌 문자열 ("")이어야합니다. 이것은 가정

pin = "a[3]" 
a = pin.scan(/[A-Za-z0-9]+/) 

# => ["a", "3"] 

당신이 연속 영숫자를 원하는 :

+0

확인. 고마워 지금 작동합니다. – caplash

+1

@caplash 답변을 수락 한 것으로 표시 할 수 있습니까? – DNNX

관련 문제