用逗号和新行拆分php中的字符串

vik*_*vic 1 php regex string

我试图在PHP中拆分字符串.我应该使用两个分隔符来分割字符串:新行和逗号.我的代码是:

$array = preg_split("/\n|,/", $str)
Run Code Online (Sandbox Code Playgroud)

但我使用逗号进行字符串拆分,但不使用\n.这是为什么?另外,我是否必须考虑"\ r \n"符号?

hwn*_*wnd 8

我可以想到发生这种情况的两个可能原因.

1. 您使用的是单引号字符串:

    $array = preg_split("/\n|,/", 'foo,bar\nbaz');
    print_r($array);

    Array
    (
        [0] => foo
        [1] => bar\nbaz
    )
Run Code Online (Sandbox Code Playgroud)

如果是这样,请使用双引号"代替......

    $array = preg_split("/\n|,/", "foo,bar\nbaz");
    print_r($array);

    Array
    (
        [0] => foo
        [1] => bar
        [2] => baz
    )
Run Code Online (Sandbox Code Playgroud)

2.你有多个新行序列,\R如果是这样我会建议使用.这匹配ASCII范围内的任何Unicode换行序列.

    $array = preg_split('/\R|,/', "foo,bar\nbaz\r\nquz");
    print_r($array);

    Array
    (
        [0] => foo
        [1] => bar
        [2] => baz
        [3] => quz
    )
Run Code Online (Sandbox Code Playgroud)