簡體   English   中英

從字符串中獲取數字

[英]Get number from a string

我有一個字符串,例如“lorem 110 ipusm”,我想獲得110我已經嘗試過這個:

preg_match_all("/[0-9]/", $string, $ret);

但這回來了:

Array
(
    [0] => 1
    [1] => 1
    [2] => 0
)

我想要這樣的東西

Array
(
    [0] => 110        
)

使用+ (1個或多個匹配)運算符:

preg_match_all("/[0-9]+/", $string, $ret);

另外,你想支持標志嗎? 小數點? 科學計數法? 正則表達式也支持字符類的簡寫; [0-9]是一個數字,所以你可以簡單地使用\\d

你必須超過一位數:

preg_match_all("/[0-9]+/", $string, $ret);

使用/\\d+/ - 應解決它。

要捕獲任何浮點數,請使用:

preg_match_all("/[+-]?\d+[\d\.Ee+]*/", $string, $matches);

例如:

<?
$string = 'ill -1.1E+10 ipsum +1,200.00 asdf 3.14159, asdf';
preg_match_all("/[+-]?\d+[\d\.Ee+]*/", $string, $matches);
var_dump($matches);
?>

運行時給出:

array(1) {
  [0]=>
  array(4) {
    [0]=>
    string(8) "-1.1E+10"
    [1]=>
    string(2) "+1"
    [2]=>
    string(6) "200.00"
    [3]=>
    string(7) "3.14159"
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM