删除PHP中的各种空白
我希望使用正则表达式删除多个换行符。假设我有这段文字: “插入”选项卡上的“删除PHP中的各种空白,php,regex,whitespace,removing-whitespace,Php,Regex,Whitespace,Removing Whitespace,我希望使用正则表达式删除多个换行符。假设我有这段文字: “插入”选项卡上的“”\n\n\n库包括\n\n设计的项目“ 然后我想用 “插入”选项卡上的“”\n库包括\n设计的项目“ 所以我的要求是: 它将删除所有多个换行符,并将替换为一个换行符 它将删除所有多个空间,并将替换为一个空间 空间也将被修剪 我确实搜索了很多,但找不到解决方案-我得到的最接近的是这一个。使用这个: echo trim(preg_replace('#(\s)+#',"$1",$string)); 使用以下命令: echo
”\n\n\n库包括\n\n设计的项目“
然后我想用
“插入”选项卡上的“”\n库包括\n设计的项目“
所以我的要求是:
echo trim(preg_replace('#(\s)+#',"$1",$string));
使用以下命令:
echo trim(preg_replace('#(\s)+#',"$1",$string));
这将对换行符进行排序
$text = trim($text);
preg_replace('/\s+/', ' ', $text);
preg_replace('/(?:\s*(?:\r\n|\r|\n)\s*){2}/s', "\n", $text);
这将对换行符进行排序
$text = trim($text);
preg_replace('/\s+/', ' ', $text);
preg_replace('/(?:\s*(?:\r\n|\r|\n)\s*){2}/s', "\n", $text);
多亏了
多亏了,这里是你的空格部分:@Sudhir我可以删除多个空格,但我还需要删除多个换行符。请参见:@ARIFMAHMUDRANA这里是该技术的简略介绍:1)修剪字符串。2) 查找包含多个空白字符的所有块。3) 如果块包含一个
\n
字符,则对其进行迭代;如果块不包含一个\n
字符,则将其替换为一个空格。最简单的方法是使用preg\u replace\u callback()
。我甚至会免费给你需要的正则表达式:/\s+/
。试着自己实施,如果你做不好,展示你的想法,然后,我们可以帮助您查看出了什么问题。@Sudhir是否适用于换行符之间的空格?以下是您的空格部分:@Sudhir我可以删除多个空格,但我也需要删除多个换行符。请参见:@ARIFMAHMUDRANA这里是该技术的一部分:1)修剪字符串。2) 查找包含多个空白字符的所有块。3) 如果块包含一个\n
字符,则对其进行迭代;如果块不包含一个\n
字符,则将其替换为一个空格。最简单的方法是使用preg\u replace\u callback()
。我甚至会免费给你需要的正则表达式:/\s+/
。试着自己实施,如果你做不好,展示你的想法,然后,我们可以帮助您查看出了什么问题。@Sudhir是否适用于换行符之间的空格?这将用\n\n
替换
,当它应该替换为\n
@Yazmat时,关键是检查您在字符串中检测到的每个标记,并查看它是否包含新行,如果有,则返回一个新行;如果没有,则返回一个空格。我还将给您一个提示,告诉您如何轻松地执行此操作:preg\u replace\u callback()
。还要注意的是,虽然您的表达式是正确的,并且可以工作,但它将非常低效,因为您将检查每个空格块(包括单个字符)只需检查两个或多个空白字符的块。这会将\n\n
替换为
,而应将其替换为\n
@Yazmat。关键是检查字符串中检测到的每个标记,并查看其是否包含新行,如果有,则返回一个新行;如果没有,则返回一个空格。我还将给您一个提示,告诉您如何轻松地执行此操作:preg\u replace\u callback()
。还要注意的是,虽然表达式是正确的并且可以工作,但是效率很低,因为您将检查每个空白块(包括单个字符),而您只需要检查两个或更多空白字符的块。