$string = "
put returns between paragraphs
for linebreak add 2 spaces at end
";
想从字符串中删除所有新行。
我有这个正则表达式,它可以捕获所有的,问题是我不知道该用哪个函数来使用它。
/\r\n|\r|\n/
$string应该变成:
$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
$string = "
put returns between paragraphs
for linebreak add 2 spaces at end
";
想从字符串中删除所有新行。
我有这个正则表达式,它可以捕获所有的,问题是我不知道该用哪个函数来使用它。
/\r\n|\r|\n/
$string应该变成:
$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
当前回答
您可以删除新行和多个空白。
$pattern = '~[\r\n\s?]+~';
$name="test1 /
test1";
$name = preg_replace( $pattern, "$1 $2",$name);
echo $name;
其他回答
你必须小心使用双换行符,这会导致双空格。使用这个非常有效的正则表达式:
$string = trim(preg_replace('/\s\s+/', ' ', $string));
多个空格和换行符被替换为单个空格。
编辑:正如其他人指出的那样,这个解决方案在单词之间匹配单个换行有问题。这在示例中没有出现,但是可以很容易地看到这种情况是如何发生的。另一种选择是这样做:
$string = trim(preg_replace('/\s+/', ' ', $string));
用这个:
将换行符替换为空字符串:
$string = preg_replace("/[\\n\\r]+/", "", $string);
或者你可能想用一个空格替换换行符:
$string = preg_replace("/[\\n\\r]+/", " ", $string);
文本中的换行符通常表示为:
\r\n -在Windows电脑上
\r -在苹果电脑上
\n - Linux
//Removes all 3 types of line breaks
$string = str_replace("\r", "", $string);
$string = str_replace("\n", "", $string);
您可以删除新行和多个空白。
$pattern = '~[\r\n\s?]+~';
$name="test1 /
test1";
$name = preg_replace( $pattern, "$1 $2",$name);
echo $name;
什么:
$string = trim( str_replace( PHP_EOL, ' ', $string ) );
这应该是一个相当健壮的解决方案,因为\n不会在所有系统中正确工作,如果我没有错的话…