2017-12-14 21 views
0

문자열의 예에서 각 상자의 각 문자를 계산괄호 안에 각 문자를 계산하는 방법

$str = 'man[big man]boy[big]guy[badforreal] and others'; 

예상 결과 :

당신이 (남성)

6 개 문자가

당신은 (소년)에 3자를 가지고 있습니다

당신은 사람)

나는 PHP로 이것을 실제로 할 수 있습니까?

+0

PHP로 해결해야합니까? – SindreKjr

+1

코드를 작성하려고 시도한 적이 있습니까? – RomanPerekhrest

+0

@Basillicum 네가 이해한다면 네가 고마워. – examma

답변

0

you have 6 characters for (man) 
you have 3 characters for (boy) 
you have 10 characters for (guy) 
2

확장 preg_match_all 솔루션 :

$str = 'man[big man]boy[big]guy[badforreal] and others'; 
preg_match_all('/([^\s\[\]]+)\[([^\[\]]+)\]/', $str, $matches); 

if (isset($matches[1])) { 
    foreach ($matches[1] as $k => $m) { 
     printf("%s characters for (%s)\n", strlen(str_replace(" ", "", $matches[2][$k])), $m); 
    } 
} 

출력 :이

$array = explode("]", $str); 
foreach ($array as $string){ 
    if(strpos($string, '[') !== false){ 
     $strLabel = strstr($string, '[', true); 
     $newStr .= "you have " . strlen(str_replace(["["," "], "", strstr($string, '['))) ." characters for (" . $strLabel .")<br/>"; 
    } 
} 
echo $newStr; 

예상 출력을 시도 할 수 있습니다

6 characters for (man) 
3 characters for (boy) 
10 characters for (guy)