2015-01-09 16 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()'返回。那麼目前的代碼有什麼問題?除了'#'和'(\ d *)'之間的空格外,它看起來很好 – kero

+1

[除了一些錯誤的變量名,比如'$ sentance'並且你要求'$ str', '$ clientID'上的print_r'而不是'$ matches',而你忘記了'#'和'([0-9] *)之間的空格''它工作得很好。](https://eval.in/ 240872) – Prix

+0

謝謝你們兩位。當我爲測試重寫它時,變量名稱是錯誤的。空間就是殺死它。 –

回答

1

您可以簡單地使用preg_match()來代替,而賬戶的空白#和「ID之間」。

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