如何用preg_split拆分星期缩写字符串MTWTHFSSU得到正确数组?
解决方案
你只需要调整正则规则,优先匹配TH、SU两个双字母缩写,再匹配剩余的单个字母即可,两种实现方式如下:
方式1:沿用preg_split写法
$days = 'MTWTHFSSU'; $splitdays = preg_split('/(TH|SU|[A-Z])/', $days, null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); print_r($splitdays);
方式2:更直观的preg_match_all写法
不需要处理拆分的捕获参数,直接匹配所有符合规则的片段:
$days = 'MTWTHFSSU'; preg_match_all('/TH|SU|[A-Z]/', $days, $matches); $splitdays = $matches[0]; print_r($splitdays);
两种写法输出结果均为:
Array ( [0] => M [1] => T [2] => W [3] => TH [4] => F [5] => S [6] => SU )
内容的提问来源于stack exchange,提问作者Raymond
相关产品推荐
相关产品推荐

