我有以下文件示例:
苹果,
樱桃,
,(删除)
梨,
,(删除)
葡萄,
西瓜
我使用了下面的表达式
preg_replace('/,+/', ',', $n);来自this answer。
这可以很好地工作,但仅当文件在一行时才有效:
apple, cherry,, pear,,...如何扩展表达式以删除多行上的多余重复项,以便文件读取:
苹果,
樱桃,
梨,
葡萄,
西瓜
代码如下:
foreach ($lines as $line_num => $line) {
`if ($line[0] === '.') { $compare_line = $line; $compare_line = preg_replace('/,+/', ',', $compare_line); echo $compare_line; } }`发布于 2013-03-03 02:42:47
我的猜测是,您正在做一些事情来拆分这些行,然后只将正则表达式应用于第一行。试着这样做:
file_put_contents("newfile.txt",preg_replace("/,+/", ",", file_get_contents("oldfile.txt")));发布于 2013-03-03 03:04:57
通过将标志/s添加到表达式的末尾,可以使preg_replace将所有行作为一行处理。
preg_replace('/,+/s', ',', $n);https://stackoverflow.com/questions/15177974
复制相似问题