在各种资料中,大家都认为/s等价于 [ /f/n/r/t/v]。如下为菜鸟教程截图:
今天却碰到一个奇怪的问题:
PHP代码,utf-8格式,代码如下:
$pattern_1 = ‘//s+?(/S+)?$/’;
$pattern_2 = ‘/[ /f/n/r/t/v]+?(/S+)?$/’;$str_1 = ‘加强和改进党的作风’;
$str_2 = ‘加强和改进你的作风’;echo “1:”;
echo preg_replace($pattern_1, ”, $str_1);echo “<br>2:”;
echo preg_replace($pattern_1, ”, $str_2);echo “<br>3:”;
echo preg_replace($pattern_2, ”, $str_1);echo “<br>4:”;
echo preg_replace($pattern_2, ”, $str_2);
现在就有问题了,为何/s等于 [ /f/n/r/t/v]的话,在对字符串1的替换中,结果却不同?
str_1和str_2没有什么那一个字有什么差别呢,为何正则2对它们的处理结果不同?