簡體   English   中英

用於獲取數字和小數的正則表達式

[英]Regular expression to obtain numbers and decimals

我正在嘗試訪問

1.20163

從以下內容:

1英鎊= 1.20163歐元

到目前為止,我有:

$exchange['rate'] = $xml->channel->item[15]->description;
$rate = preg_match('/^[0-9]{1,}$/', '', $exchange['rate']);

但是,這似乎又回來了

1英鎊= 1.20163歐元

有任何想法嗎?

我認為您使用的preg_match錯誤您想從字符串中提取1.20163的值,對吧? 然后執行以下操作:

$s = '1 British Pound Sterling = 1.20163 Euro';
preg_match('/([0-9]+\.[0-9]+)/', $s, $matches);
$result = $matches[0];

您獲得了$ result的結果。

/^[0-9]{1,}$/

表示您要匹配僅包含數字的行。 您不會遇到任何匹配的情況。 您還會以錯誤的方式使用preg_match。 請參閱文檔

嘗試類似的方法:

$exchange['rate'] = $xml->channel->item[15]->description;
preg_match('/=\s*([0-9.]+)\s/', $exchange['rate'], $matches);
// the result will be in $matches
$rate = $matches[1];

嘗試

'/([0-9]{1,}\.[0-9]{1,}) /'

匹配數字,然后是十進制,然后是數字,然后是空格。

暫無
暫無

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

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