2010-12-21 4 views
0

누구나이 코드를 설명 할 수 있습니까? ("[] +", $ s); 감사PHP 스플릿에 대해서

$s = "Split this sentence by spaces"; 
$words = split("[ ]+", $s); 
print_r($words); 

Output: 
Array 
(
    [0] => Split 
    [1] => this 
    [2] => sentence 
    [3] => by 
    [4] => spaces 
) 
+0

대기입니다 싱글 문자 클래스인가요? WhereTF는 이것들에서 유래합니까? 그들은 조금 이해가되지 않는, 아직 내가 SO 만에 그들에게 두 세 번 본 적이 o.O – delnan

+0

이봐,이 정규식 (preg_split를 사용하거나 폭발, 그 분할이되지 않습니다주의)를 사용하여 문자열을 분할합니다. 분할 함수는 "간단한"정규식을 사용합니다 (그러나 Perl과 호환되는 Regex는 사용하지 않습니다). regex : [] +는 하나 또는 여러 개의 공백과 일치합니다. –

+0

그것은 응답 – Samuel

답변

1

문자열을 정규 표현식으로 배열로 나눕니다. This function은 PHP 5.3.0부터 사용이 권장되지 않습니다. 이 기능에 의존하는 것은 매우 바람직하지 않습니다.내가 대신 '분할'기능을 '폭발'reccommend

:

$s = "Split this sentence by spaces"; 
$words = explode(" ", $s); 
print_r($words); 

출력 :

array(5) { 
[0]=> 
string(5) "Split" 
[1]=> 
string(4) "this" 
[2]=> 
string(8) "sentence" 
[3]=> 
string(2) "by" 
[4]=> 
string(6) "spaces" 
} 
1

그것은 하나 이상의 공간과 일치하는 정규 표현 "[] +"에 의해 배열에 지정된 스트링을 분할한다. 기술적으로는 단지 "+"될 수 있지만 그 공간 때문에 대괄호로 읽을 수 있습니다.

split 함수는 버전 5.3부터 감가 상각되었으므로 대신 preg_split을 사용해야합니다.

0

모두가 documentation입니다.

split 첫 번째 인수는 구분 기호가 어떻게 나타나는지를 설명하는 정규식입니다. 귀하의 경우, "[ ]+" (간단히 " +"이라고도 쓰여 있음)은 "하나 이상의 공백"을 의미합니다.

1
"[ ]+" 

은 정규 표현식입니다. 공백에 따라 문자열을 분할합니다.

5

split의 첫 번째 인수는이 예제에서 "가능한 한 여러 번 공백 문자 일치"라고 말하는 정규식 패턴입니다.

N.B .: split은 PHP 5.3부터 사용되지 않으므로 권장하지 않습니다.

$words = explode(" ", $s); 

이 더 많은 정보를 위해 explode manual page을 참조하십시오

당신은 정확하게를 통해 동일한 효과를 얻을 수있다.

+0

+1 더 쉽게 읽을 @delnan. 덧붙여 말하면, 일단 질문에 대한 답변이 느껴지면, 각 대답의 왼쪽에있는 투표 수 밑의 회색 눈금을 통해 원하는 답변을 선택하면 자신과 답변을 게시 한 사람의 평판 포인트를 얻게됩니다. – XMen

+1

덕분에 또 하나의 기능과 메모를 설명 추가 – Kulbir

+0

@Jim 없음 문제에 대한 대담한 –

1

split 함수도 정규 표현식을 인수로 사용할 수 있습니다. 당신이 할 때,

[ ] // a character class is used with a space 
+ // find one or more instances of space 

를 따라서 :

$words = split("[ ]+", $s); 

을 배열 생성과 공간에 의해 구분 된 모든 문자와 $words 변수에 저장되는 경우에, 당신은 의미 [ ]+를 지정합니다.

추가 정보 : split 기능이 지원되지 않습니다 것을


참고. 이 같은 explode과 같은 일을 할 수있다 : 펄 정규 표현식

$s = "Split this sentence by spaces"; 
$words = explode(' ', $s); 
print_r($words); 
0

좋은 자원이 here를 찾을 수 있습니다.