2012-06-10 4 views
1

나는 루비를 배우려고 노력하고있다. Ruby에서 '"abcd" "efg"'['abcd', 'efg']으로 변환하는 우아한 방법은 무엇입니까?루비 문자열 처리

감사합니다.

답변

3

이 시도 :

require 'shellwords' 
'"abcd" "efg"'.shellsplit 
#=> ["abcd", "efg"] 
+0

고마워요! Ruby 1.8.7에서 무엇을 사용할 수 있습니까? – codefx

+0

방금 ​​1.8.7에서 확인했는데 작동하는 것 같습니다. – tokland

1

당신은 그것을 할도 수 공간

'"abcd" "efg"'.tr('"','').split 
'"abcd" "efg"'.delete('"').split 
0

당신은 문자열 내에서 패턴의 모든 항목을 찾아 scan를 사용하여 다음 분할을 " 문자를 제거하여.

'"aaa" "bbb"'.scan(/"([^"]*)"/) 
=> [["aaa"], ["bbb"]] 

는 설명 :

  • / 뭔가를 / 정규 표현식 (문자열과 일치 할 수있는)
  • /" 뭔가 "/가 시작 "
  • [^"]로 끝나는 문자열과 일치하는 정규 표현식입니다 0이 아닌 모든 문자와 일치합니다. "
  • [^"]*은 가능한 한 많은 문자와 일치합니다.
  • ()은 내가 원하는 비트를 원한다는 것을 알려줍니다.
+0

Note : 이스케이프 된'''문자는 다루지 않습니다. –