PHP preg_match_all 匹配任何单词边界

PHP preg_match_all match any word boundary

我正在尝试将每个吉他和弦捕捉到 $output array 但是我没有任何运气。它们被多个空格包围:

$text = "F#m     Em   Asus   G";        
$result = preg_match_all('/\w/',$text,$output);
print_r($output); 

我的预期 $output 是:

Array
(
    [0] => Array
        (
            [0] => F#m
            [1] => Em
            [2] => Asus
            [3] => G
        )

)

像这样的事情怎么样?

    $text =  "F#m     Em   Asus   G";
    $parsedString = preg_replace ("/ +/", " ", $text);
    $result = explode(' ', $parsedString);

    var_dump($result);

输出

array (size=4)
    0 => string 'F#m' (length=3)
    1 => string 'Em' (length=2)
    2 => string 'Asus' (length=4)
    3 => string 'G' (length=1)

你可以使用 preg_split:

$text = "F#m     Em   Asus   G";        
$result = preg_split('/\s+/', $text);
print_r($result);