使用phpexcel逗号或制表符分隔符读取文本文件

时间:2014-03-26 07:23:29

标签: regex preg-match phpexcel

我必须使用逗号(,)或制表符分隔符读取文本文件。如果这不可能plz建议我任何方式阅读像reg exp或类似的东西.. 这是示例文件

Transaction Date      Transaction Description      Transaction Debit Transaction Credit 
  18/03/2014,        'POS Transaction 7400000000',       212.00,         ' ',
  14/03/2014,        'POS Transaction 770000000',        202.95,         ' ',
  14/03/2014,        'POS Transaction 77631000000',      202.95,         ' ',
  14/03/2014,        'REV POS Purchase77100000000',       ' ',          202.95
  11/03/2014,        'MB - Qtel Hala TopUp 50109671 ,QTEL REF:QI3283',30.00 ' ',
  10/03/2014,        'MB - VODAFONERED35',               35.00,           ' ',
  08/03/2014,        'MB - Qtel Bill Payment 446748 , QTEL REF:QIB13295320',250.00,' ',
  03/03/2014,        'MB-Transfer from 100248417 to 100222077',   '5,000.00',   ' ',
  01/03/2014,        'POS Transaction 40501048',          207.85,    ' ',
  27/02/2014,        'TFR:000019-Payment - Automatic Loan Pymt W/D','2,880.00',' ',
  27/02/2014,        'TFR:000005-Payment - Automatic Loan Pymt W/D','2,771.00',' ',
  27/02/2014,        'ATM Withdraw 0058',                 '4,000.00',' ',
  27/02/2014,        'ATM Withdraw 0058',                 '5,000.00',' ',
  27/02/2014,        'MB-Transfer from 109812 to 10017',    ' ',     500.00
  27/02/2014,        'MB-Transfer from 10892 to 100417',    ' ',     500.00

1 个答案:

答案 0 :(得分:0)

尝试此选项以匹配所有逗号分隔值,如果逗号介于数字

之间,则会忽略该值
$f= file("statement.txt"); //if from text file

foreach($f as $dailystatmet)
{

         preg_match_all("/('?\d+,\d+\.\d+)?([a-zA-Z]|[0-9]|)[^,]+/",$dailystatmet,$matches);

        var_dump($matches);
}

$dailystatmet="18/03/2014,'POS Transaction 7400000000',212.00,' ', 14/03/2014";
preg_match_all("/('?\d+,\d+\.\d+)?([a-zA-Z]|[0-9]|)[^,]+/",$dailystatmet,$matches);
var_dump($matches);