2012-08-30 8 views
0

선택 목록에서 찾을 수있는 일부 요소의 번호를 검색하는 절차를 진행 중입니다. 예를 들어 "test element (100)"에서 "100"숫자를 얻으려고합니다.숫자 배열을 정수로 변환하려면 어떻게해야합니까?

  before = Regexp.escape '(' 
      after = Regexp.escape ')' 
      x = "test element (100)"[-5, 5].scan(/#{before}(.*?)#{after}/).flatten 

이 코드는 작동하고 X의 값이 100이 될 것이다 그러나 이것은 "100"사실 배열입니다 : 나는 그것이 두 괄호 사이의 숫자를 잡는다, 그것을 할이 코드를 사용했다.

배열 "100"을 "100"정수로 변환하는 방법을 알고 있습니까?

감사합니다.

+2

'.flatten.first'에서와 같이'.first'를 붙이면됩니다. 아마도'.to_i'도 필요합니다 ... –

+0

고마워요. 작동했습니다. –

+0

당신은 '[-5, 5]'부분 ... – Kyle

답변

0
x.first 

은 사용자에게 제공해야합니다.

1

왜 안 되니?

x = "test element (100)"[/(?<=\()\d+(?=\))/].to_i # 100 

예 :

1.9.3-p194 :001 > "test element (100)"[/(?<=\()\d+(?=\))/].to_i 
=> 100 
1.9.3-p194 :002 > "test (250) other stuff"[/(?<=\()\d+(?=\))/].to_i 
=> 250 
1

왜 사용하지 않는 :

"test element (100)"[/\d+/] 

반환 :

"100" 

는 정수 값을 사용하려면 다음

"test element (100)"[/\d+/].to_i 
관련 문제