2014-09-09 2 views
1

"SiteName"의 첫 글자를 에코하려고하는데, 약간의 어려움이 있습니다. 아래 표현식은 "S"대신 "1"을 반환합니다.Regex - 문자열의 첫 번째 문자 반향

// $sitename = $GLOBALS["AL_CFG"]["siteName"]; 

$sitename = "SiteName.com"; 
$sitename1 = preg_match("/.{0,1}/", $sitename); 
echo $sitename1; 

감사합니다.

+0

[preg_match()] (http://php.net/manual/en/function.preg-match.php)가 정수를 반환하기 때문입니다. 설명서를 읽으십시오. –

답변

1

당신은 단지 문자열의 첫 번째 문자를 캡처하려는 경우, 당신은 정규 표현식을 사용할 필요가 없습니다 .

$sitename = "SiteName.com"; 
$letter = substr($sitename, 0, 1); 
echo $letter; // prints "S" 
+0

네 말이 맞아, 고마워! – Sergelie

3

preg_match()은 일치가 성공했는지 여부를 나타내는 값을 반환하고 이 아니기 때문에 실제 일치 자체입니다.

$sitename1 = preg_match("/.{0,1}/", $sitename, $matches); 
print_r($matches); 
echo $matches[0]; // => 'S' 

어쨌든, 당신은 단지 특정의 첫 번째 문자를 얻으려고 노력하는 경우 : 성냥에 액세스하려면, 당신은 당신이 경기가 저장하고 싶은하는 세 번째 인수, 배열을 지정해야합니다 문자열, 전혀 정규식을 사용할 필요가 없습니다; PHP docs에서

을 : 당신은 단순히 문자 배열로 문자열을 액세스 할 수있는 문자열 내에서

문자 액세스 및 지정에 의해 수정 될 수있는 제로 사각형 배열을 사용하여 문자열 후 원하는 문자의 오프셋 (offset) 대괄호 ($str[42]). 이 목적을 위해 문자열을 문자 배열로 생각하십시오. substr()substr_replace()은 두 개 이상의 문자를 추출하거나 바꿀 때 사용할 수 있습니다.

그래서 $sitename에서 첫 번째 뜯거나, 당신이 쓰는 것 얻을 :

echo $sitename[0]; // => 'S' 
+2

+1 초고속 답변입니다. – anubhava

+0

정말 고마워! 나는 행동을 놓쳤다 고 생각한다! – Sergelie

+0

@ user3371049 : 일어납니다. 기꺼이 도와 줬다! –

관련 문제