用preg_match_all获取具体数据

Obtain specific data with preg_match_all

我有不同的文本,格式不正确,因此我需要一个适用于所有文本的模式,return 从中提取一些特定元素(文本)。假设我有这段文字:

"AL TEST232    KW     12*/13*/17 TEST kw16TEST123 kw 15*"

我希望我的 preg_match_all() 变成 return 这样的东西:

Array
(
    [0] => Array
        (
            [0] => AL TEST232
            [1] => 12/13/17
        )
    [1] => Array
        (
            [0] => TEST
            [1] => 16
        )
    [2] => Array
        (
            [0] => TEST123
            [1] => 15
        )
)

单一模式是否可行?

您可以使用:

preg_match_all('~(\w[\s\w]*?\w)\s*kw\s*([\d/*]+)~', $input, $matches);

RegEx Demo