2012-04-06 4 views
4

구분 기호를 제거하지 않고 문자열을 분할해야합니다. 이 작업을 수행하는 간단하고 "루비 지향적 인"방법이 있습니까? 이 같은 문자열 주어진 예를 들어Ruby : 구분 기호를 제거하지 않고 문자열 분할

는 :

str = "(This is (a test))" 

내가 필요한 것은 이것이다 :

내가 구분 기호로 괄호 "("")"를 사용하여, 문자열에 대한 분할 방법을 사용하여 시도
["(", "This", "is", "(", "a", "test", ")", ")"] 

, 그런 다음 반환 배열에서 제거됩니다. 조언이 도움이 될 것입니다. 이 같은

+0

원래 문자열의 공간에 무슨 일이? 문자열 배열에 없습니다. –

+0

어레이에서 제거하고 싶습니다. – wazabit

+2

이것은 토큰 파싱 문제와 비슷해 보입니다. – DGM

답변

8

아마 뭔가 :

str.scan(/\(|\)|\w+/) 
+0

정말 잘 작동합니다. 고맙습니다! – wazabit

+0

이 정규 표현식은 다른 모든 문자를 무시합니다. 너가 원하는게 그거야? –

+1

좋지만 약간 깔끔한 것은 다음과 같습니다 :/[()] | \ w + / – pguardiario

관련 문제