我正试图从我拥有的多行字符串中删除一些换行符和空格,例如:
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));
请在此处检查此代码。