正则表达式分组使用小括号()来标识,每个小括号内部的内容都被视为一个分组。正则表达式”/(\d{4})-(\d{2})-(\d{2})/”可以匹配形如”2019-01-01″的日期字符串,并将年、月、日分别作为三个分组。
atch()函数来匹配正则表达式,并将匹配结果存储在一个数组中。数组的第一个元素为匹配到的整个字符串,后面的元素依次为每个分组匹配到的内容。对于上述正则表达式,可以使用以下代码从”2019-01-01″中提取年、月、日:
$str = “2019-01-01”; = “/(\d{4})-(\d{2})-(\d{2})/”;atchatches);tatches);
输出结果为:
Array
[0] => 2019-01-01
[1] => 2019
[2] => 01
[3] => 01
atches数组的第一个元素为匹配到的整个字符串”2019-01-01″,第二个元素为第一个分组匹配到的内容”2019″,第三个元素为第二个分组匹配到的内容”01″,第四个元素为第三个分组匹配到的内容”01″。
atchatch()函数类似,但会匹配所有符合条件的字符串,并将匹配结果存储在一个二维数组中。对于以下字符串数组:
$strs = array(“2019-01-01”, “2020-02-02”, “2021-03-03”); = “/(\d{4})-(\d{2})-(\d{2})/”;atchplodeatches);tatches);
输出结果为:
Array
[0] => 2019-01-01
[1] => 2020-02-02
[2] => 2021-03-03
)
[1] => 2019
[1] => 2020
[2] => 2021
)
[2] => 01
[1] => 02
[2] => 03
)
[3] => 01
[1] => 02
[2] => 03
)
atches数组的第一个元素为匹配到的所有字符串,第二个元素为所有字符串中第一个分组匹配到的内容,第三个元素为所有字符串中第二个分组匹配到的内容,第四个元素为所有字符串中第三个分组匹配到的内容。
atchatch_all()函数来实现。