用php捕捉特定值

用php捕捉特定值,php,arrays,string,Php,Arrays,String,我需要捕获/分离一些特定的数据值​​使用php。在php中,似乎有preg_match()之类的东西。但没有成功。我将展示我正在处理的一小部分数据。原始档案有32万多封信 129/09/20031820252310112414060213090516030,005BA15446454880725759349.765,82689,8410,004,002,000,000,000,00PRSPSPSP206/10/20032315050412162006111924010913070,001SP18

我需要捕获/分离一些特定的数据值​​使用php。在php中,似乎有preg_match()之类的东西。但没有成功。我将展示我正在处理的一小部分数据。原始档案有32万多封信

129/09/20031820252310112414060213090516030,005BA15446454880725759349.765,82689,8410,004,002,000,000,000,00PRSPSPSP206/10/20032315050412162006111924010913070,001SP184623281252478188596.323,701.388,9510,004,002,000,000,000,00313/10/20032023120806010711140416100917240,002SP158689796244608211400.623,702.173,3610,004,002,000,000,000,00SP420/10/20031605252423081202171801100419130,001MT2589569123912706657902.226,021.498,7210,004,002,000,000,000,00527/10/20031513200211240916042325120819010,002BA47214736195636860992380.017,55687,4910,004,002,000,000,000,00MS603/11/20032319010507211610152506021204170,002RJ39314242162320888301489.140,061.066,8310,004,002,000,000,000,00RS
我需要这些数据是分开的,就像那样。可以是数组或.txt文件

29/09/2003182025231011241406021309051603,
06/10/2003231505041216200611192401091307,
13/10/2003202312080601071114041610091724,
20/10/2003160525242308120217180110041913,
27/10/2003151320021124091604232512081901,
03/11/2003231901050721161015250602120417,
这些数据有一个获取值的模式。值/20将是关键,因此他可以选择循环值​​因为它是此数据的默认值

如果preg_match()起作用,它将接受这些值​​基于值/20,将使用substr()正数和负数选择选择找到的每个值的范围,以便在数组或.txt文件上播放找到的值。我尝试了array_search(),但它似乎带来了bolean响应(TRUE或FALSE)。我还尝试使用explode,但是/20值消失,因此失去了搜索的enter键

我真的迷路了,我找了好几天,想有人能给我一条解决这个问题的途径。php中是否有其他命令可以帮助我解决这个问题?

希望这对您有所帮助

$exp = "/[\\d]{2}[\\/][\\d]{2}[\\/](.*?),/"; 
$data = "129/09/20031820252310112414060213090516030,005BA15446454880725759349.765,82689,8410,004,002,000,000,000,00PRSPSPSP206/10/20032315050412162006111924010913070,001SP184623281252478188596.323,701.388,9510,004,002,000,000,000,00313/10/20032023120806010711140416100917240,002SP158689796244608211400.623,702.173,3610,004,002,000,000,000,00SP420/10/20031605252423081202171801100419130,001MT2589569123912706657902.226,021.498,7210,004,002,000,000,000,00527/10/20031513200211240916042325120819010,002BA47214736195636860992380.017,55687,4910,004,002,000,000,000,00MS603/11/20032319010507211610152506021204170,002RJ39314242162320888301489.140,061.066,8310,004,002,000,000,000,00RS\n"; 

preg_match_all($exp, $data, $result);
print_r($result);
输出:

Array
(
    [0] => Array
        (
            [0] => 29/09/20031820252310112414060213090516030,
            [1] => 06/10/20032315050412162006111924010913070,
            [2] => 13/10/20032023120806010711140416100917240,
            [3] => 20/10/20031605252423081202171801100419130,
            [4] => 27/10/20031513200211240916042325120819010,
            [5] => 03/11/20032319010507211610152506021204170,
        )

    [1] => Array
        (
            [0] => 20031820252310112414060213090516030
            [1] => 20032315050412162006111924010913070
            [2] => 20032023120806010711140416100917240
            [3] => 20031605252423081202171801100419130
            [4] => 20031513200211240916042325120819010
            [5] => 20032319010507211610152506021204170
        )

)

这是否可能是简单的CSV数据?如果不知道,你知道确切的结构吗?@JensA.Koch数据来自一个.html文件,所以我用php提取了这个文件,并用strip_tags()提取了所有标记,只留下数据值,所以把它们放在一起,因为我用str_replace()在数字之间有很多空格。最后,我把它放进了一个.txt文件中,这样就行了。我不知道preg_match()会这么复杂,甚至还有preg_match_all()。非常感谢你。