2010-07-02 3 views
18

루비 문자열에서 X 문자마다 공백을 삽입하려면 어떻게해야합니까?루비 : X 문자마다 공백 삽입

예를 들어, 주어진 문자열의 8 자마다 공백을 삽입하고 싶습니다.

+0

가능한 복제본 [어떻게 루비의 네 정수 사이에 공백을 만들 수 있습니까?] (http://stackoverflow.com/questions/3053328/how-do-i-create-spaces-between-every-four-integers -in-ruby) –

답변

22
>> s = "1234567812345678123456781234567812345678" 
=> "1234567812345678123456781234567812345678" 
>> s.gsub(/(.{8})/, '\1 ') 
=> "12345678 12345678 12345678 12345678 12345678 " 

편집 : 당신은 마지막에 여분의 공간을 추가 피하기 위해 긍정적 예측을 사용할 수

>> s.gsub(/(.{8})(?=.)/, '\1 \2') 
=> "12345678 12345678 12345678 12345678 12345678" 
+0

닫기. 매 8 글자는 어떨까요?하지만 문자열 끝에는 공백을 추가하지 마십시오. – Shpigford

+3

그냥'strip! '을 추가하십시오. .strip! ' –

+1

문자열에 처음에 공백이 있거나 앞뒤에 공백이 있으면 어떻게됩니까? – Nabb

16

대체 솔루션 : 당신을 위해

s.scan(/.{1,8}/).join(' ') 

String#scan 의지 청크 그것을 (마지막 덩어리를 제외하고 8 자 길이로) - Array#join은 덩어리를 재결합합니다. interspersed 적절한 문자.