PHP正则表达式修复换行
我正在尝试用PHP处理一段文本,以删除换行符。把这个看作是一个反向的单词缠绕函数,它只影响中间被破坏的线,但是在段落末尾保持线断裂。原始内容为纯文本格式 这是原始内容的一个示例: 敏捷的棕色狐狸跳过懒狗。狐狸是橙色的,狗是蓝色的。PHP正则表达式修复换行,php,regex,Php,Regex,我正在尝试用PHP处理一段文本,以删除换行符。把这个看作是一个反向的单词缠绕函数,它只影响中间被破坏的线,但是在段落末尾保持线断裂。原始内容为纯文本格式 这是原始内容的一个示例: 敏捷的棕色狐狸跳过懒狗。狐狸是橙色的,狗是蓝色的。 一只蓝色的鸟出现在窗户上,欢快地唱着歌 应将其转换为: 敏捷的棕色狐狸跳过了懒狗。狐狸是橙色的,狗是蓝色的。 一只蓝色的鸟出现在窗户上,欢快地唱着歌 我的逻辑是创建一个可接受的行尾字符列表,如句号、冒号和分号,并从没有以这些字符结尾的行中删除任何分隔符。我认为它是有效
一只蓝色的鸟出现在窗户上,欢快地唱着歌 应将其转换为: 敏捷的棕色狐狸跳过了懒狗。狐狸是橙色的,狗是蓝色的。
一只蓝色的鸟出现在窗户上,欢快地唱着歌 我的逻辑是创建一个可接受的行尾字符列表,如句号、冒号和分号,并从没有以这些字符结尾的行中删除任何分隔符。我认为它是有效的,但我很难把它翻译成正则表达式。任何帮助都将不胜感激 我目前的进展情况:
$content=preg\u replace(“/(?如果你想用正则表达式来做这件事,你必须研究lookbehind,尤其是负lookbehind,你可以读一读
您可以从以下内容进行构建:
<?php
$data = file_get_contents('test_data.txt');
echo preg_replace("/\n(?<![.,;]\n)/"," ",$data);
到目前为止,我刚刚用我的进度更新了这个问题。感谢您指出。您愿意采用一种解决方案,对文本进行两次遍历吗?一次遍历查找可接受的行尾字符,然后插入一个额外的换行符。然后,另一次遍历删除所有未立即后跟另一个换行符的换行符呃新线。