我对正则表达式有疑问,希望获得帮助。我有一个包含几个表达式的引导程序代码,例如[col md-6 lg-2]或[col md-6]。但是列的数量不是固定的,我可以像[col x y z]甚至更多。
我想与以下团体进行比赛: 第1组:x 第2组:y 第3组:z ...等等。
一些帮助将不胜感激
最好的问候
答案 0 :(得分:0)
您将要用preg_replace_callback
分隔组,然后将找到的字符串分割成空格。这样的事情应该做
$return = '';
preg_replace_callback('/\[col \K[^\]]+/', function($match){
$GLOBALS['return'] = preg_split('/\s+/', $match[0], -1, PREG_SPLIT_NO_EMPTY);
}, '[col md-6 lg-2]');
print_r($return);
此\[col \K
在寻找文字字符串[col
,然后\K
告诉正则表达式忘记它与捕获匹配的正则表达式。然后[^\]]+
捕获所有内容,直到下一个]
。然后,我们在回调中使用该找到的组来分隔空格(\s
)。