[英]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.