我不希望我的preg_replace替换换行符,这是我的代码
preg_replace('/[^('x20-'x7F)]*/','', $message_ins);
例如:
X
Y
Z
输出XYZ
我希望它与
X
Y
Z
因为您从用于比较的类中排除了不在 ''x20-''x7F 范围内的每个字符。
换
行符通常由换行符表示,'x0A
. 由于这只是一个字符,并且超出了'x20
范围 - 'x7F
,因此它被替换了。 如果不希望替换它,则需要将其添加到字符类中。您可能还想添加回车符'x0D
,以防万一您最终处理通过 Windows 的文本文件:
preg_replace('/[^'x20-'x7F'x0A'x0D]*/','', $message_ins);
请注意,版本中的括号是多余的,因为它们已包含在范围内。如果您尝试执行的操作不是将字符(
和)
包含在否定字符类中,那么您犯了一个错误,需要重新审视它。