2012-05-04 3 views
1

이 모든 공백을 제거합니다ruby, gsub을 사용하여 끝에 공백을 제거하려면 어떻게해야합니까?

irb(main):021:0> 'gff gf ggfgfg '.gsub(' ','') 
=> "gffgfggfgfg" 

을하지만 난 그냥 끝 부분에 공간을 제거하려면,

뭔가

irb(main):023:0> 'gff gf ggfgfg '.gsub([*' '$],'') 

처럼하지만 난 얻을 :

SyntaxError: compile error 
(irb):25: syntax error, unexpected $undefined, expecting ']' 
'gff gf ggfgfg '.gsub([*' '$],'') 
          ^
    from (irb):25 
    from :0 
         ^
    (irb):23: syntax error, unexpected ',', expecting $end 
    'gff gf ggfgfg '.gsub(^' ','') 
          ^
     from (irb):23 
     from :0 

nb truncate, trim 및 다른 레일 헬퍼를 사용할 수 없습니다.

+1

-1 구문 오류를 수정 해 보셨습니까? –

+0

예 Andrew 많은 변형을 시도하고 마침내 적어도 문법 오류가 포함 된 코드를 가지고 내 질문을 게시하기로 결정했습니다. 사람들은 '당신은 무언가를 시도 했습니까?'라고 자주 말합니다. 그래서 내가 한 것을 보여주고 싶었습니다. :) – junky

답변

14

를 사용하여 문자열의 끝에서 공백 만 일치하는 정규 표현식 :

'foo bar '.gsub(/\s+$/,'') # => "foo bar" 

rstrip and rstrip! 있습니다 :

또한 레일의 일이 아니다 String#rstrip,있다
'foo bar '.rstrip # => "foo bar" 
+0

+1, 그게 내가 할 것입니다. 이 정규식에 익숙하다. 왜냐하면 내가 vim에서 내가 refactor : ref : $ s/+ $ // g과 이것도 필요로하는 다른 하나의 낡은 코드를 열면 제일 먼저하는 일이기 때문이다. % s/\ t// g. – kikuchiyo

+0

+1 및 동의. 'rstrip'과'rstrip! '에 대해 네, 예. 감사합니다! – junky

+0

주의 : 스트립 등 WHITESPACE, 따라서 TAB도 죽여라! – chksr

5

:

' foo bar '.rstrip # => " foo bar" 

자기 수정 버전이 있습니다.및 선두 공간의 경우 lstrip (!)이고 둘 모두의 경우 (!)입니다.

+0

Thx이지만이 질문에 대해서만 후행합니다. – junky

관련 문제