我不希望我的preg_replace替换换行符,这是我的代码
preg_replace('/[^(\x20-\x7F)]*/','', $message_ins);
例如:
X
Y
Z
输出为XYZ
我希望它与
相同X
Y
Z
答案 0 :(得分:2)
因为你要从你正在用于比较的类中排除不在\ x20- \ x7F范围内的每个字符。
答案 1 :(得分:1)
换行符通常由换行符\x0A
表示。由于这只是一个角色,并且超出了\x20
- \x7F
范围,因此会被替换。如果您不想替换它,则需要将其添加到角色类中。您可能也希望添加回车符\x0D
,以防止您处理已通过Windows的文本文件:
preg_replace('/[^\x20-\x7F\x0A\x0D]*/','', $message_ins);
请注意,您的版本中的括号是多余的,因为它们已包含在范围内。如果你试图做一些其他事情而不是在否定的角色类中包含字符(
和)
,那么你就犯了一个错误,需要重新审视它。