为什么箭头<打破这个正则表达式?

why do arrows < break this regex?

$str = "for(var i = 0; i < aLinks.length; i++) {"; 

preg_replace( "!\s+!", "", $str  );

输出:for(vari=0;i

我想要的输出是

for(var i=0;iaLinks.length;i++){

如果我像这样删除箭头 $str = "for(var i = 0; i (no arrow here) aLinks.length; i++) {"; 然后我得到了想要的输出。

为什么后退箭头会破坏正则表达式?

我想要正则表达式做的是删除所有制表符换行符和空格,仅此而已。字符串可能有 < 或 > 等运算符,我希望忽略这些运算符。

这是一个愚蠢的小学生错误。我在浏览器中查看输出,因此它将“<”解释为标记,之后的所有内容都是不可见的。只需在浏览器中查看源代码,就会发现它确实按预期工作。