【问题标题】:PHP preg_plit() with line breaks but prevent multi line jumpsPHP preg_split() 带换行但防止多行跳转
【发布时间】:2019-06-08 19:18:55
【问题描述】:

我想每新行 preg_split() 一个字符串,只有内容行(没有多行跳转)

我试过这个(\S*)\n|$

例如:

last_name, first_name

bjorge, philip
kardashian, kim
mercury, freddie

我的 preg_split

(\S*)\n|$
array(2
0   =>  last_name, first_name
1   =>  
)
array(2
0   =>  
1   =>  
)
array(2
0   =>  bjorge, philip
1   =>  
)
array(2
0   =>  kardashian, kim
1   =>  
)
array(2
0   =>  mercury, freddie
1   =>  
)

我想要的数组:

array(2
0   =>  last_name, first_name
)
array(2
0   =>  bjorge, philip
)
array(2
0   =>  kardashian, kim 
)
array(2
0   =>  mercury, freddie    
)

【问题讨论】:

    标签: php arrays string line-breaks preg-split


    【解决方案1】:

    \R+ 上拆分,这意味着 1 个或多个任意类型的换行符。

    根据评论编辑:

    为了不捕获仅包含空格的行,请添加 \h+(即 1 个或多个水平空格):

    $string = "last_name, first_name
    
    bjorge, philip
    kardashian, kim
    mercury, freddie
    ";
    $res = preg_split('/\h*\R+/', $string, -1, PREG_SPLIT_NO_EMPTY);
    print_r($res);
    

    输出:

    Array
    (
        [0] => last_name, first_name
        [1] => bjorge, philip
        [2] => kardashian, kim
        [3] => mercury, freddie
    )
    

    【讨论】:

    • 您好,感谢您的回答,但我遇到了一个空格和\n之类的行的问题。我将如何使用 \S* ? (避免一行有空格的情况)
    • 小心,因为你的回答让我Array ( [0] => last_name, first_name [1] => bjorge, philip kardashian, kim mercury, freddie )(一行,两行有空格)
    • @SourouCerulean:对不起,我会说\h*\R+,在 h 后加一个星号,而不是加号。
    猜你喜欢
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2012-12-22
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2014-12-18
    相关资源
    最近更新 更多