3 回答

TA貢獻1853條經驗 獲得超18個贊
刪除捕獲組,
preg_match_all("/[0-9]+/", trim($s), $matches);
匹配數組中的第一個元素是正則表達式的完全匹配,第二個是捕獲組。

TA貢獻1865條經驗 獲得超7個贊
preg_split()是這項工作的理想工具,因為它將返回一個扁平的索引數字數組。
用于\D+在出現一次或多次非數字字符時分解。使用函數標志確保輸出數組中沒有空元素——這消除了提前修剪的需要。
代碼:(演示)
var_export(
preg_split(
'/\D+/',
$s,
0,
PREG_SPLIT_NO_EMPTY
)
);

TA貢獻1836條經驗 獲得超5個贊
您可以選擇刪除所有非數字字符并獲取strlen()
echo strlen(preg_replace('/[^0-9]/', '', '1 ssdsdsd 2')); // 2 digits
echo strlen(preg_replace('/[^0-9]/', '', '1 ssd324sd567s.d6756 2')); // 12 digits
echo strlen(preg_replace('/[^0-9]/', '', '123456789')); // 9 digits
如果你知道 PHP 字符串可以通過它們的索引位置訪問,那么你可以使用類似的東西:
echo preg_replace('/[^0-9]/', '', '9 ssdsdsd 5')[0]; // outputs 9 because the resulting string is '95' and position zero's value is 9
- 3 回答
- 0 關注
- 154 瀏覽
添加回答
舉報