分割している文字列には、次のような種類のコンテンツが含まれています。
$string = "$100 USD per year"
$string = "$100USD per year"
$string = "100 USD per year"
$string = "100EUR per year"
$string = "€100EUR per year"
$string = "€100 EUR per year"
これは私が使用している正規表現です(そしてExpressoで機能します):
$pattern = "/\$?(\d+\.\d+)(\w{0,3})\s(.*)/i";
基本的に、最終結果は次のような配列になります。
$arr[0] = "$100" // the "$" optional, also number might be integer or decimal
$arr[1] = "USD";
$arr[2] = "per year";
これは私が実行しているサンプルPHPコードですが、役に立ちません。
<?php
$content = "$99.37CAD per year";
$pattern = "/\$?(\d+\.\d+)(\w{0,3})\s(.*)/i";
$myArr = preg_split($pattern, $content);
echo "<pre>";
var_dump($myArr);
echo "</pre>";
?>
そして、出力は次のとおりです。
bool(false)
誰かが私を正しい方向に向けてくれませんか?