PHP正则表达式:根据数值拆分字符串

PHP正则表达式:根据数值拆分字符串,php,regex,string,Php,Regex,String,我有一个可以接收两种类型字符串的代码: 文本编号文本 danny levitt 48 new york 文本编号[逗号]文本 danny levitt 48, new york 两种大小的文本可以是单个单词或多个单词,并且语言可能不是英语 我需要这些字符串以数组的形式返回给我,如下所示: Array ( 0 => "danny levitt", 1 => "48", 2 => "new york" ) 我

我有一个可以接收两种类型字符串的代码:

  • 文本编号文本

    danny levitt 48 new york
    
  • 文本编号[逗号]文本

    danny levitt 48, new york
    
  • 两种大小的文本可以是单个单词或多个单词,并且语言可能不是英语

    我需要这些字符串以数组的形式返回给我,如下所示:

        Array (
            0 => "danny levitt",
            1 => "48",
            2 => "new york"
        )
    
    我该怎么做


    谢谢。

    根据数字前面的空格和同一数字后面的空格拆分您的输入
    \K
    丢弃先前匹配的字符

    $string = "danny levitt 48, new york";
    $regex = '~\s+(?=\b\d+,?)|\b\d+\K,?\s+~';
    $splits = preg_split($regex, $string);
    print_r($splits);
    
    输出:

    Array
    (
        [0] => danny levitt
        [1] => 48
        [2] => new york
    )
    

    谢谢那帮了大忙!