Preg replace - PHP preg_replace多行重复字符串


preg replace - php preg_replace duplicate string on multiple lines

我有以下文件示例:

苹果

,
樱桃,
(删除)
梨,
(删除)
葡萄,
西瓜

我使用了下面的表达式

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);