2013-04-30 2 views
-1

나는이 문자열을 가지고 : $29.99. 소수점 .을 제거하고 부분 수 부분 99<sup> 태그로 덮어 쓰려고합니다 : $29<sup>99</sup>.문자열의 마지막 3 문자에 대한 루비 정규식

형식이 변경 될 수 있습니다. 소수점은 점 대신 쉼표가 될 수 있습니다 : ,99.

보너스 : 별도로, 가변 길이 (R $, $, Rs 등) 일 수 있다는 점을 고려하여 통화 레이블을 추출하는 정규식.

+0

무엇 정규식 지금까지 시도? –

+1

http://rubular.com/을 시도해보십시오. :) – alfa

+0

나는 노력하고있다. 그러나 나는 마지막 3자를 얻는 방법을 이해할 수 없다. – dee

답변

2
str = '$29.99' 
result = str.gsub(/\.(\d+)$/, '<sup>\1<sup>') 
+2

-1 루비에 OP 요청이 없습니다. –

+0

@CharlesCaldwell 루비 버전을 추가하지 않았습니다. – xdazz

+0

굉장! downvote를 upvote로 대체했습니다. –

1
1.9.3p385 :012 > "$29.99".gsub(/(\.|,)/,'<sup>').concat("</sup>") 
=> "$29<sup>99</sup>" 

과 통화 추출 :

1.9.3p385 :020 > ("USD>as$29.99" =~ /(.*?)\d.*/ ; $1) 
=> "USD>as$" 
1

이 아닌 모든 보너스 포인트 시나리오를 처리를 :

1.9.3p392 :009 > "$29.99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>") 
=> "$29<sup>99</sup>" 
1.9.3p392 :010 > "$29,99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>") 
=> "$29<sup>99</sup>" 
1.9.3p392 :011 > "R$29,99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>") 
=> "R$29<sup>99</sup>" 
관련 문제