Php 从绳子上拿几分钱
我只想从我所有的绳子上抓几分钱,而不是整美元。。任何以0.xx开头的内容都是我想呼应出来的:Php 从绳子上拿几分钱,php,regex,preg-match-all,Php,Regex,Preg Match All,我只想从我所有的绳子上抓几分钱,而不是整美元。。任何以0.xx开头的内容都是我想呼应出来的: $paste = "08/29/2014 Interest Paid $ 0.03 $ 37.69 08/25/2014 ACH Deposit $ 0.93 $ 37.66 08/20/2014 ACH Deposit $ 0.63 $ 36.73 08/04/2014 ACH Deposit $ 0.95 $ 36.10
$paste = "08/29/2014 Interest Paid $ 0.03 $ 37.69
08/25/2014 ACH Deposit $ 0.93 $ 37.66
08/20/2014 ACH Deposit $ 0.63 $ 36.73
08/04/2014 ACH Deposit $ 0.95 $ 36.10
08/04/2014 ACH Deposit $ 0.57 $ 35.15
08/04/2014 ACH Deposit $ 0.88 $ 34.58
07/31/2014 Interest Paid $ 0.01 $ 33.70
07/31/2014 ACH Deposit $ 0.13 $ 33.69
07/31/2014 ACH Deposit $ 0.96 $ 33.56
07/31/2014 ACH Deposit $ 0.65 $ 32.60
07/31/2014 ACH Deposit $ 0.53 $ 31.95
07/31/2014 ACH Deposit $ 0.83 $ 31.42
07/30/2014 ACH Deposit $ 0.63 $ 30.59
07/28/2014 ACH Deposit $ 0.76 $ 29.96";
我试过以下方法,但它不能满足我的需要,也不能一行一行地回应我正在寻找的美分
$find = strpos($paste, '0.');
sscanf(substr($paste, $find), '0.%d', $numbers);
非常感谢您对我的帮助。提前感谢您。您可以尝试:
$matches = array();
preg_match_all('/\$ 0.[0-9]{2} /', $paste, $matches);
您可以尝试:
$matches = array();
preg_match_all('/\$ 0.[0-9]{2} /', $paste, $matches);
你可以试试这样的
$paste = <<<EOT
08/29/2014 Interest Paid $ 0.03 $ 37.69
08/25/2014 ACH Deposit $ 0.93 $ 37.66
08/20/2014 ACH Deposit $ 0.63 $ 36.73
08/04/2014 ACH Deposit $ 0.95 $ 36.10
08/04/2014 ACH Deposit $ 0.57 $ 35.15
08/04/2014 ACH Deposit $ 0.88 $ 34.58
07/31/2014 Interest Paid $ 0.01 $ 33.70
07/31/2014 ACH Deposit $ 0.13 $ 33.69
07/31/2014 ACH Deposit $ 0.96 $ 33.56
07/31/2014 ACH Deposit $ 0.65 $ 32.60 07/31/2014 ACH Deposit $ 0.53 $ 31.95
07/31/2014 ACH Deposit $ 0.83 $ 31.42
07/30/2014 ACH Deposit $ 0.63 $ 30.59
07/28/2014 ACH Deposit $ 0.76 $ 29.96
EOT;
preg_match_all('/\$\s00?\.(\d+)/', $paste, $cents);
print_r($cents[1]);
如果您希望获得整个值,如0.03
,请将上面的模式更改为此
\$\s(00?\.\d+)
|你可以试试这样的东西
$paste = <<<EOT
08/29/2014 Interest Paid $ 0.03 $ 37.69
08/25/2014 ACH Deposit $ 0.93 $ 37.66
08/20/2014 ACH Deposit $ 0.63 $ 36.73
08/04/2014 ACH Deposit $ 0.95 $ 36.10
08/04/2014 ACH Deposit $ 0.57 $ 35.15
08/04/2014 ACH Deposit $ 0.88 $ 34.58
07/31/2014 Interest Paid $ 0.01 $ 33.70
07/31/2014 ACH Deposit $ 0.13 $ 33.69
07/31/2014 ACH Deposit $ 0.96 $ 33.56
07/31/2014 ACH Deposit $ 0.65 $ 32.60 07/31/2014 ACH Deposit $ 0.53 $ 31.95
07/31/2014 ACH Deposit $ 0.83 $ 31.42
07/30/2014 ACH Deposit $ 0.63 $ 30.59
07/28/2014 ACH Deposit $ 0.76 $ 29.96
EOT;
preg_match_all('/\$\s00?\.(\d+)/', $paste, $cents);
print_r($cents[1]);
如果您希望获得整个值,如0.03
,请将上面的模式更改为此
\$\s(00?\.\d+)
|\$\s?\d\d?\(\d\d)
或\$\s?0\(\d\d)
\$\s?\d\d?\(\d\d)或\$\s?0\(\d\d)
变量转储($matches)未返回任何内容:数组(1){[0]=>数组(0){}未返回任何内容($matches)数组(1)=>0}