2020-10-21

正则表达式/s真的等于 [ /f/n/r/t/v]吗?

在各种资料中,大家都认为/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对它们的处理结果不同?

https://q.cnblogs.com/q/127793/

发表回复

Your email address will not be published. Required fields are marked *