gpt4 book ai didi

php - preg_match_all 不给出结果

转载 作者:行者123 更新时间:2023-11-28 01:15:00 24 4
gpt4 key购买 nike

我不知道为什么,但是当我执行脚本时,它没有正确显示这些行。它只是返回可变行的最后一行,下面没有输入。我是不是忽略了什么?

<?php
$stop = '06BAH';
$input = file_get_contents('File1.txt');
$lines = file('File2.txt');

for ($i=0; $i < count($lines); $i++) {
preg_match_all("/^($lines[$i].*)$stop/msU", $input, $matches);
}
?>

文件1:

06BAH  TOI00123-11-134-B                        OP_SIGNAGE                                       10  
05 6 00132-12-172-A 4 PON
05 7 00127-22-683-A 3 PON
05 9 00927-62-133-A 11 PON
05 18 00227-72-542-A 8 PON
06BAH TOI00877-27-836-C OP_SIGNAGE 10
05 122 00238-92-963-A 3 PON
05 173 00124-65-832-A 2 PON
06BAH TOI00112-54-980-B OP_SIGNAGE 10

文件2:

TOI00123-11-134-B
TOI00112-54-980-B

输出:

06BAH   TOI00123-11-134-B                        OP_SIGNAGE                                       10  
05 6 00132-12-172-A 4 PON
05 7 00127-22-683-A 3 PON
05 9 00927-62-133-A 11 PON
05 18 00227-72-542-A 8 PON
06BAH TOI00112-54-980-B OP_SIGNAGE 10

最佳答案

您的问题是,尽管您将结果存储在 $matches 中,但每次循环迭代时都会覆盖 $matches

你应该沿着这条线走:

<?php
$stop = '06BAH';
$input = file_get_contents('file1.txt');
$lines = file('file2.txt');
$caught = [];

for ($i=0; $i < count($lines); $i++) {
preg_match_all("/(".trim($lines[$i]).".*)".trim($stop)."/msU", $input, $matches);
foreach($matches as $key => $value) {
$caught[$i] = $value;
}
}

var_dump($caught);

?>

此外,请注意您的正则表达式的更改 - 我不是最擅长使用正则表达式的,但在测试您的原始表达式后,它与 anchor ^ 不匹配。

关于php - preg_match_all 不给出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36057224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com