用空格分隔的正则表达式组词

时间:2018-07-03 12:05:38

标签: php regex

我对正则表达式有疑问,希望获得帮助。我有一个包含几个表达式的引导程序代码,例如[col md-6 lg-2]或[col md-6]。但是列的数量不是固定的,我可以像[col x y z]甚至更多。

我想与以下团体进行比赛: 第1组:x 第2组:y 第3组:z ...等等。

一些帮助将不胜感激

最好的问候

1 个答案:

答案 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);

https://3v4l.org/koKFH

\[col \K在寻找文字字符串[col,然后\K告诉正则表达式忘记它与捕获匹配的正则表达式。然后[^\]]+捕获所有内容,直到下一个]。然后,我们在回调中使用该找到的组来分隔空格(\s)。