本文實例講述了PHP使用preg_split()分割特殊字符(元字符等)的方法。分享給大家供大家參考,具體如下:
這裡所說的特殊字符就是正則中使用的特殊字符,如: | . + 等
其它的先不說,來個實例:
代碼如下復制代碼$pattern="/[,-\\|\\.]/";
$subject="aaa,bbb,ccc-ddd-eee-fff|ggg|hhh.iii.jjj.kkk";
$spr=preg_split($pattern,$subject);
print_r($spr);
結果:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [22] => [23] => [24] => [25] => [26] => [27] => [28] => [29] => [30] => [31] => [32] => [33] => [34] => [35] => [36] => [37] => [38] => [39] => [40] => [41] => [42] => [43] => )
很顯然,這不是我們想要的結果,郁悶了好一會,才找到是什麼原因:
把正則表達式內的特殊字符放到前面就沒事了, 也就是
$pattern="/[\\|\\.,-]/";
結果:
Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd [4] => eee [5] => fff [6] => ggg [7] => hhh [8] => iii [9] => jjj [10] => kkk )
好了,這就是我們要的結果了
總結:當使用正則表達式中的元字符,普通字符進行 [ ]內的多個字符分割的時候,要把待轉義的元字符放在前面.