doumu5934 2018-10-16 20:42
浏览 40
已采纳

用字符串中的逗号和空格替换3d空格

To replace a whitespace with a comma and whitespace in a string I should do something like this:

$result = preg_replace('/[ ]+/', ', ', trim($value));

The result: Some, example, here, for, you

However, I only want to replace the 3d white space, so that the result would look like this:

Some example here, for you

How do I do that?

  • 写回答

3条回答 默认 最新

  • doushai7225 2018-10-16 20:48
    关注

    You may use something like

    $value = " Some example here for you ";
    $result = preg_replace('/^\S+(?:\s+\S+){2}\K\s+/', ',$0', trim($value), 1);
    echo $result; // => Some example here, for you
    

    See the PHP demo and the regex demo.

    Pattern details

    • ^ - start of string
    • \S+ - 1+ non-whitespaces
    • (?:\s+\S+){2} - two consecutive occurrences of
      • \s+ - 1+ whitespaces
      • \S+ - 1+ non-whitespaces
    • \K - a match reset operator
    • \s+ - (the $0 in the replacement pattern references this substring) 1+ whitespaces.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?