PHP正则表达式:在数值上拆分一个字符串

时间:2014-12-13 14:34:44

标签: php regex string

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

  1. 文字编号文字

    danny levitt 48 new york
    
  2. 文字编号[逗号]文字

    danny levitt 48, new york
    
  3. 两种尺寸的文字都可以是单个字或更多,而且语言可能不是英文。

    我需要这些字符串在数组中返回给我,如下所示:

        Array (
            0 => "danny levitt",
            1 => "48",
            2 => "new york"
        )
    

    我该怎么做?

    感谢。

1 个答案:

答案 0 :(得分:0)

根据前面存在的空格将输入分割为数字和相同数字后面的空格。 \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
)