-2

我正在尝试从我拥有的多行字符串中删除一些换行符和空格,例如:

    Toronto (YTZ)
    to
    Montreal (YUL)

我试着做:

$matched = preg_replace('/[\n]/', '', $string);
var_dump($matched);

但它返回的只是:

    Montreal (YUL)

我尝试了各种正则表达式组合,但它似乎只能找到我指定的内容,替换它,并在匹配的表达式之后显示任何内容。

我确定这很简单,但我似乎无法弄清楚。

提前致谢!

4

3 回答 3

1

\n 仅表示“转到行”,如果它在 PHP “\n”中的双引号之间...您的正则表达式不应该"/[\n]/"'/[\n]/'

无论如何,不​​要为此使用正则表达式,而是使用正则表达式str_replace("\n",'',$string)。它更快。

于 2012-09-13T16:32:09.513 回答
0

正如 Kash 已经注意到的那样,不同操作系统中新行的表达可能不同。那就是使用 PHP_EOL 常量的地方。这个常数是根据操作系统定义的。

$string = str_replace(PHP_EOL, '', $string);

如果可以在不同的机器上创建字符串,那么最好分别替换“\r”和“\n”

$string = str_replace(array("\r", "\n"), '', $string);
于 2012-09-13T16:46:29.487 回答
0
$str = preg_replace('/\n+(?=.)/', " ",
       preg_replace('/^\s*/m', "",
       $str));

在此处检查此代码。

于 2012-09-13T16:57:53.007 回答