2017-02-24 1 views
1

나는 예를 들어 문자열 $s = 'A5C7';$s = 'A5C17';preg_split을 사용하여 기호로 문자열을 분할하는 방법은 무엇입니까?

위해 가지고 내가 사용하는 기호로 분할 문자열을 시도했다 preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);

문자열 $s = 'A5C7' 내가 가지고있는 경우이 같은 확인 결과 :

array(4) { 
    [0]=> 
    string(1) "A" 
    [1]=> 
    string(1) "5" 
    [2]=> 
    string(1) "C" 
    [3]=> 
    string(1) "7" 
} 

하지만 경우에 사용 $s = 'A5C17' I 얻었다 :

array(5) { 
    [0]=> 
    string(1) "A" 
    [1]=> 
    string(1) "5" 
    [2]=> 
    string(1) "C" 
    [3]=> 
    string(1) "1" 
    [4]=> 
    string(1) "7" 
} 
(210)

I 싶어 이렇게 가지고 :

array(4) { 
     [0]=> 
     string(1) "A" 
     [1]=> 
     string(1) "5" 
     [2]=> 
     string(1) "C" 
     [3]=> 
     string(1) "17" 
    } 

어떻게 결과의 두 유형을 얻기를 위해 preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);을 개선하기 위해? 미리 감사드립니다.

+0

[PHP에서 문자열에서 문자와 숫자를 분리하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/4311156/how-to-separate-letters-and-digits-from-a-string- in-php) – Mohammad

답변

1

// 패턴을 사용하면 문자가 분할됩니다. 다음과 같이 대신 시도하십시오 :

preg_split('/(\\d+)/', $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); 

array (
    0 => 'A', 
    1 => '5', 
    2 => 'C', 
    3 => '17', 
); 

이 패턴은 연속 된 정수 그룹을 분할 구분 기호로 사용하며, 그 사이의 구분 기호를 캡처합니다. PREG_SPLIT_DELIM_CAPTURE 옵션을 사용하면 구분 기호 (정수)도 캡처 할 수 있습니다.

관련 문제