我有這樣的字串:
hdahdsa jkasdhjsa USD 15,000 jshads hduasdo SN : 02604800000734987654 at 17/02/2022 18:04:47. Blabla bla bla sdsad dsada
我試過這樣:
$string = "hdahdsa jkasdhjsa USD 15,000 jshads hduasdo SN : 02604800000734987654 at 17/02/2022 18:04:47. Blabla bla bla sdsad dsada "
$array = explode(" ", $string);
foreach ($array as $text) {
if(is_numeric($text)){
$sn = $text;
}
}
只得到 $sn = 02604800000734987654
像這樣獲得字串的最佳方法是什么?
$price = 15,000
$sn = 02604800000734987654
uj5u.com熱心網友回復:
is_numeric對于整數 ( ) 或浮點數 ( )將回傳true ,但15,000兩者都不是。1515.00
一個快速的解決方法是在測驗之前洗掉所有逗號,如下所示:
$matches = array();
$string = "hdahdsa jkasdhjsa USD 15,000 jshads hduasdo SN : 02604800000734987654 at 17/02/2022 18:04:47. Blabla bla bla sdsad dsada ";
$array = explode(" ", $string);
foreach ($array as $text) {
if(is_numeric(str_replace(',', '', $text))){
$matches[] = $text;
}
}
print_r($matches);
$price = $matches[0];
$sn = $matches[1];
另一種解決方案是使用正則運算式模式
$matches = array();
preg_match('/^[\s\S] ([0-9,] ) [\s\S] ([0-9] ) [\s\S] $/m', $string, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
$price = $matches[1][0];
$sn = $matches[2][0];
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429462.html
