一个有意思的正则

  在一个框架中偶然发现一段比较有意思的正则,到现在还没完全搞懂,先记录下.

  

 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) 用法,全是英文,看完了似懂非懂,不过结合上面的的例子,大概能看出个所以然.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值