Jam*_*mes 269 php regex string
$string = "
put returns between paragraphs
for linebreak add 2 spaces at end
";
Run Code Online (Sandbox Code Playgroud)
想要从字符串中删除所有新行.
我有这个正则表达式,它可以捕获所有这些,问题是我不知道我应该使用哪个函数.
/\r\n|\r|\n/
Run Code Online (Sandbox Code Playgroud)
$string 应成为:
$string = "put returns between paragraphs for linebreak add 2 spaces at end ";
Run Code Online (Sandbox Code Playgroud)
jwu*_*ler 549
您必须小心双线换行,这会导致双倍空格.使用这个非常有效的正则表达式
$string = trim(preg_replace('/\s\s+/', ' ', $string));
Run Code Online (Sandbox Code Playgroud)
多个空格和换行符被替换为单个空格.
编辑:正如其他人所指出的,这个解决方案在单词之间存在匹配单个换行符的问题.这在示例中不存在,但可以很容易地看出这种情况是如何发生的.另一种方法是执行以下操作:
$string = trim(preg_replace('/\s+/', ' ', $string));
Run Code Online (Sandbox Code Playgroud)
mat*_*lof 172
关于接受的答案的一些评论:
的+意思是"1以上".我认为你不需要重复\s.我想你可以简单地写'/\s+/'.
此外,如果要首先删除字符串中的空格,请添加trim.
通过这些修改,代码将是:
$string = preg_replace('/\s+/', ' ', trim($string));
Run Code Online (Sandbox Code Playgroud)
Nul*_*ion 75
只是用 preg_replace()
$string = preg_replace('~[\r\n]+~', '', $string);
Run Code Online (Sandbox Code Playgroud)
str_replace()虽然代码看起来不干净,但你可以逃脱这一点:
$string = str_replace(array("\n", "\r"), '', $string);
Run Code Online (Sandbox Code Playgroud)
fab*_*rik 20
$string = str_replace(array("\n", "\r"), ' ', $string);
Run Code Online (Sandbox Code Playgroud)
Rob*_*itt 12
您应该使用str_replace来提高其速度并使用带数组的双引号
str_replace(array("\r\n","\r"),"",$string);
Run Code Online (Sandbox Code Playgroud)
Md.*_*yan 10
文本中的换行符通常表示为:
\r\n - 在 Windows 计算机上
\r - 在 Apple 计算机上
\n - 在 Linux 上
//Removes all 3 types of line breaks
$string = str_replace("\r", "", $string);
$string = str_replace("\n", "", $string);
Run Code Online (Sandbox Code Playgroud)
小智 8
转义序列\R匹配通用换行符
也就是说,任何被 Unicode视为换行符的序列。这包括由
\v(垂直空白)匹配的所有字符,以及多字符序列\x0D\x0A...
$string = preg_replace('/\R+/', " ", $string);
Run Code Online (Sandbox Code Playgroud)
在 8 位非 UTF-8 模式下
\R等效于以下内容:(?>\r\n|\n|\x0b|\f|\r|\x85)... pcre.org
可以使用preg_replace完成PCRE正则表达式替换:http: //php.net/manual/en/function.preg-replace.php
$new_string = preg_replace("/\r\n|\r|\n/", ' ', $old_string);
Run Code Online (Sandbox Code Playgroud)
将用空格替换新行或返回字符.如果您不想要任何替换它们,请将第二个参数更改为''.
我不确定这对已经提交的答案是否有任何价值,但我也可以发布。
// Create an array with the values you want to replace
$searches = array("\r", "\n", "\r\n");
// Replace the line breaks with a space
$string = str_replace($searches, " ", $string);
// Replace multiple spaces with one
$output = preg_replace('!\s+!', ' ', $string);
Run Code Online (Sandbox Code Playgroud)
用这个:
用空字符串替换一系列换行符:
$string = preg_replace("/[\\n\\r]+/", "", $string);
Run Code Online (Sandbox Code Playgroud)
或者你可能想用一个空格替换换行符:
$string = preg_replace("/[\\n\\r]+/", " ", $string);
Run Code Online (Sandbox Code Playgroud)
其中许多解决方案对我来说不起作用。但这确实达到了目的:-
$svgxml = preg_replace("/(*BSR_ANYCRLF)\R/",'',$svgxml);
Run Code Online (Sandbox Code Playgroud)
这是参考:- PCRE 和新线