尝试使用regex删除新行和空格


Trying to remove new lines and spaces using regex

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

    Toronto (YTZ)
    to
    Montreal (YUL)

我试着做:

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

但它所返回的只是:

    Montreal (YUL)

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

我确信这很简单,但我似乎想不通。

提前感谢!

''n仅在PHP中位于双引号之间时表示"转到行"。。。您的正则表达式应该是"/['n]/"而不是'/['n]/'

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

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

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

如果字符串可以在不同的机器上创建,那么最好分别替换"''r"answers"''n"

$string = str_replace(array("'r", "'n"), '', $string);
$str = preg_replace('/'n+(?=.)/', " ",
       preg_replace('/^'s*/m', "",
       $str));

请在此处检查此代码。