我試圖0044800 999999在第一次出現非零時提取字串的一部分。我使用 preg_split() 因此:
$str = preg_split("/[1-9]/", "0044800 999999", 2);
var_dump($str[1]);
問題在于,當此操作完成時,它還會洗掉匹配的非零數字。例如
0044800 999999結果4800 999999而不是44800 999999。
我可能做錯了什么?
uj5u.com熱心網友回復:
您可以使用可選的前導零
$str = preg_split("/^0*/", "0044800 999999", 2);
var_dump($str[1]);
輸出
string(12) "44800 999999"
或者您可以拆分 1 個或多個前導零,并檢查回傳的陣列是否有 2 個部分,以防字串不包含前導零。
您可以使用更精確的方法去除前導零,并使用捕獲組來匹配后跟空格和數字的數字。
$re = '/^0*(\d (?:\h \d )*)$/';
$str = '0044800 999999';
$result = preg_replace($re, '$1', $str);
var_dump($result);
輸出
string(12) "44800 999999"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370096.html
