Php 从绳子上拿几分钱

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

我只想从我所有的绳子上抓几分钱,而不是整美元。。任何以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
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}