我有以下文件示例:
苹果,
樱桃,
(删除)
梨,
(删除)
葡萄,
西瓜
我使用了下面的表达式
preg_replace('/,+/', ',', $n);
从这个答案。
只有在文件只有一行的情况下才能正常工作:
apple, cherry,, pear,,...
如何扩展表达式以删除多行上多余的重复项,以便文件读取:
苹果,
樱桃,
梨,
葡萄,
西瓜
代码如下:
foreach ($lines as $line_num => $line) {
if ($line[0] === '.') {
$compare_line = $line;
$compare_line = preg_replace('/,+/', ',', $compare_line);
echo $compare_line;
}
}
我猜您正在做一些事情来分割行,然后仅将正则表达式应用于第一行。试着这样做:
file_put_contents("newfile.txt",preg_replace("/,+/", ",", file_get_contents("oldfile.txt")));
您可以通过在表达式末尾添加标志/s
来使preg_replace将所有行作为一行处理。
preg_replace('/,+/s', ',', $n);