2015-01-09 5 views
-2

정규 표현식을 사용하여 PHP에서 문자열의 특정 부분을 가져 오려고합니다. 클라이언트 ID를 알아내는 것만으로도 어려움을 겪고 있습니다.문자열에서 클라이언트 ID 가져 오기

$matches = array(); 
$sentance = "Client ID # 050036598BOB BARKER 11/13/2014"; 
$clientID = preg_match_all("/Client ID #([0-9]*)[a-zA-Z]/", $str, $matches); 
print_r($clientID); 

내가 찾고 있어요 결과는

050036598 
+2

'$ matches'를 출력해야합니다.'preg_match_all()'이 리턴합니다. yor 현재 코드의 문제점은 무엇입니까? '#'와'(\ d *)'사이의 누락 된 공간을 제외하고는 괜찮습니다. – kero

+1

['$ sentance'와 같은 잘못된 변수 이름을 제외하면'$ str'을 요구하면서' print_r'을'$ matches' 대신에'$ clientID'에 쓰고'#'와'([0-9] *)'사이에 공백을 잊어 버린 사실을 알려줍니다.] (https://eval.in/ 240872) – Prix

+0

감사합니다. 변수 이름은 테스트를 위해 다시 작성했을 때 실수였습니다. 공간은 그것을 죽이고 있었던 것이다. –

답변

1

당신이 단순히 #하고 "ID 사이에 공백 대신 및 계정 preg_match()를 사용할 수 있습니다 여기에

내가 지금까지 가지고있는 코드입니다 ".

$str = "Client ID # 050036598BOB BARKER 11/13/2014"; 
preg_match("/# *(\d+)/", $str, $match); 
echo $match[1]; //=> "050036598"