在一个框架中偶然发现一段比较有意思的正则,到现在还没完全搞懂,先记录下.
1 <?php 2 /* 3 $str = 'string'; 4 //第一个参数为正则 //是左右定界符, //就代表每个字符串都匹配 5 //PREG_SPLIT_NO_EMPTY 不返回空的 6 //第3个参数 代表分割多少个数组 7 $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); 8 print_r($chars); 9 exit(); 10 */ 11 12 $text = '1 2 3 4/5/6 "7/8 9" 10'; 13 // 空格或者/(可以多个)分割 14 //$results = preg_split('~[ /]+~', $text); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => "7 [7] => 8 [8] => 9" [9] => 10 ) 15 16 // *匹配前面的[^"](非")的任意次 17 $results = preg_split('~"[^"]*"(*SKIP)(*F)|[ /]+~', $text); 18 print_r($results); 19 /* 20 * Array 21 ( 22 [0] => 1 23 [1] => 2 24 [2] => 3 25 [3] => 4 26 [4] => 5 27 [5] => 6 28 [6] => "7/8 9" 29 [7] => 10 30 ) 31 * 32 */
google查了下 (*SKIP)(*F) 用法,全是英文,看完了似懂非懂,不过结合上面的的例子,大概能看出个所以然.