$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 ";

当前回答

我惊讶地发现,每个人对正则表达式知之甚少。

php中的换行符是

$str = preg_replace('/\r?\n$/', ' ', $str);

在perl中

$str =~ s/\r?\n$/ /g;

意思是替换行末的任何换行符(为了效率)-可选在回车符之前-用空格。

\n或\015是换行符。 \r或\012是回车。 ? 在正则表达式中,表示匹配前一个字符的1或0。 在正则表达式中,$表示匹配行尾。

最初最好的正则表达式参考是perldoc perlre,每个程序员都应该非常了解这个doc: http://perldoc.perl.org/perlre.html 注意,并非所有语言都支持所有特性。

其他回答

转义序列\R匹配通用换行符

也就是说,任何被Unicode视为换行序列的东西。这包括由\v(垂直空格)匹配的所有字符,以及多字符序列\x0D\x0A…

$string = preg_replace('/\R+/', " ", $string);

在8位非utf -8模式下\R相当于以下内容:(?>\ R \n|\n|\x0b|\f|\ R |\x85)…pcre.org

Regex101演示

也许这样行得通:

$str='\n';
echo str_replace('\n','',$str);

这些解决方案中有许多对我不起作用。 这招奏效了:-

$svgxml = preg_replace("/(*BSR_ANYCRLF)\R/",'',$svgxml);

参考文献如下:- PCRE和New Lines

非常简单的

$hello = "
A
B
C
";
str_replace("
", " ", $hello);
// A B C

您可以删除新行和多个空白。

$pattern = '~[\r\n\s?]+~';
$name="test1 /
                     test1";
$name = preg_replace( $pattern, "$1 $2",$name);

echo $name;