PHP 7.3.4中preg_replace()函数未生效的原因是什么?
我在学习日常英语是收集了这样一个txt的文本,文件名eng.txt
:
一、 学习用品 (school things)
pen钢笔 pencil铅笔 pencil-case铅笔盒 ruler尺子 book书 bag包
comic book漫画书 post card明信片 newspaper报纸
schoolbag书包 eraser橡皮 crayon蜡笔 sharpener卷笔刀
story-book故事书 notebook笔记本
Chinese book语文书 English book英语书 math book数学书
magazine杂志 dictionary词典
二、人体(body)
foot脚 head头 face脸 hair头发 nose鼻子
mouth嘴 eye眼睛 ear耳朵 arm手臂 hand手 finger手指
leg腿 tail尾巴
...
我想用php来处理下这个文本文件,去掉多余的回车。
<?php
$file = fopen("eng.txt", "r");
if ($file) {
$cont = '';
while (!feof($file)) {
$cont .= fgets($file);
}
fclose($file);
}
$cont = preg_replace("/\n\n/", "\n", $cont);
echo $cont;
不过通过运行,发现并没有达到预期的效果。
如下才是我觉得应该返回的效果。
一、 学习用品 (school things)
pen钢笔 pencil铅笔 pencil-case铅笔盒 ruler尺子 book书 bag包
comic book漫画书 post card明信片 newspaper报纸
schoolbag书包 eraser橡皮 crayon蜡笔 sharpener卷笔刀
story-book故事书 notebook笔记本
Chinese book语文书 English book英语书 math book数学书
magazine杂志 dictionary词典
二、人体(body)
foot脚 head头 face脸 hair头发 nose鼻子
mouth嘴 eye眼睛 ear耳朵 arm手臂 hand手 finger手指
leg腿 tail尾巴
...
以上结果我是用python 实现的,正则替换规则一样,希望得知为什么会在php中不行
# -*- coding: utf-8 -*-
import re
if __name__ == '__main__':
content = open('eng.txt','r',encoding='utf-8').read()
content = re.sub(r'\n+', '\n', content)
print(content)
py 里面你替换都是用的
\n+
,PHP 里面你又用着\n\n
去了,不同平台下保存的文件的换行符可能是不一样的,可以用[\r\n]+
代替