有趣的正则-案例实战讲解
程序员文章站
2022-04-19 16:08:25
...
案例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)
代表分组但是不存放到内置变量中
后段部分
上一篇: android防止内存泄漏