2014-05-18 2 views
0

공백을 제외한 모든 것으로 문자열을 분할하고 싶습니다.Perl : 공백을 제외한 모든 것으로 문자열 분할

예 : 당신이 할 수

[" ", " ", " ", " ", " ", " ", " ", " "] 

: 나는 그것을 분할 및 공간 문자열의 다음 목록을 얻으려면

"The quick brown fox jumps over the lazy dog" 

:

내가 문자열을 가지고 있다고 가정 그걸하는 법을 보여줘?

감사합니다.

답변

2

\S을 사용하면 여기에서 분할 할 수 있습니다. 이는 비 공백 문자와 일치한다는 것을 의미합니다.

my @list = split /\S+/, $string; 

또는 더 좋은 방법은 분할하지 말고 공백을 일치시키는 것입니다.

my @list = $string =~ /\s+/g; 
+0

위대한 !! 고마워요 :) – SomethingSomething

+0

이것은 아마도 가장 좋은 두 번째 옵션으로 날 이길 때부터 최고의 답변 인 것 같습니다. – vol7ron

1

\S 공백이 아닌 공백으로 나눕니다. 그러나 탭과 개행 문자를 포함하려면 (단일 문자 공간)을 사용해야합니다. 원하는 것보다 더 많이 \Shwnd으로 제공됩니다.

my $string = q{The quick brown fox jumps over the lazy dog}; 
my @values = split /[^ ]+/, $string; 
+0

빈 목록을 반환합니다 – SomethingSomething

+0

안됩니다.하지만 반복 연산자'+'를 잊어 버렸습니다. – vol7ron

0

왜 공백 문자가 아닌 공백을 찾으십니까?
패턴 = (\s+)Demo