我有一个文本文件(“file.txt”):
5 (blah-blah) 001
2 (blah) 006
使用 PHP 代码通过在 line[number] 中搜索模式来查找第一个单词、括号中的表达式和最后 3 位或 4 位数字:
<?php
// file
$file = file("file.txt");
/* first line */
// match first word (number)
preg_match("/^(\d+)/",$file[0],$first_word);
// match expression within parentheses
preg_match("/(?<=\().*(?=\))/s",$file[0],$within_par);
// match last 3- & 4-digit numbers
preg_match("/(\d{3,4})?(?!.*(\d{3,4}))/",$file[0],$last_word);
/* repeats (second line) */
preg_match("/^(\d+)/",$file[1],$first_word2);
preg_match("/(?<=\().*(?=\))/s",$file[1],$within_par2);
preg_match("/(\d{3,4})?(?!.*(\d{3,4}))/",$file[1],$last_word2);
<?php
以及用于逐行显示匹配项的 HTML 代码:
<div>
<p><?php echo $first_word[0] ?></p>
<p><?php echo $within_par[0] ?></p>
<p><?php echo $last_word[0] ?></p>
</div>
<div>
<p><?php echo $first_word2[0] ?></p>
<p><?php echo $within_par2[0] ?></p>
<p><?php echo $last_word2[0] ?></p>
</div>
但我希望能够显示所有匹配项,而不必在我的 PHP 代码和 HTML 代码中单独列出每个匹配项。我想使用 preg_match_all 在文本文件中搜索,然后 foreach 所有匹配项,并回显/返回每个匹配项,一次一个 div(具有三个模式)。(我尝试了几种不同的方法,但结果我得到了一个数组。)什么代码可以完成这个?