有趣的正则-案例实战讲解

案例1:

    $index = "users[info][name]";
    $count = preg_match_all('/(?:^[^\[]+)|\[[^]]*\]/', $index, $matches);
    print_r($matches);

结果:

Array
(
    [0] => Array
        (
            [0] => users
            [1] => [info]
            [2] => [name]
        )

)

讲解:
将表达式分为两部分 (?:^[^\[]+)\[[^]]*\],中间用|连接。
其中前段部分主体部分为 ^[^\[]+ 第一个 ^表示以后面[]字符域里面的字符开头,而字符域 ^\[ 表示不包括字符[的字符集合,+表示一个或多个。所以第一个部分表示,匹配不以[为开始的一个或多个字符,在上例中匹配项为'users'。其中() 代表捕获并且存放到内置变量中,第一个括号里东西放到$1;第二个括号中的东西放到$2; 第三个括号中的东西放到$3(?: Feb|Mar)代表分组但是不存放到内置变量中
后段部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值