【问题标题】:PHP preg_match_all match any word boundaryPHP preg_match_all 匹配任何单词边界
【发布时间】:2016-02-25 22:38:39
【问题描述】:

我正在尝试将每个吉他和弦捕捉到$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
        )

)

【问题讨论】:

  • 你的预期输出是什么?

标签: php regex preg-match-all


【解决方案1】:

你可以使用preg_split:

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

【讨论】:

    【解决方案2】:

    这样的事情呢?

        $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)
    

    【讨论】:

    • 用您自己给定的测试文本数据对此进行了测试,一切正常。显示失败的字符串?
    • 实际上,这确实有效,感谢您的帮助。看起来托托上面的答案可能会短一些。你同意吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    相关资源
    最近更新 更多