【问题标题】:Replace newlines, but keep the blank lines替换换行符,但保留空行
【发布时间】:2011-07-12 15:03:28
【问题描述】:

我想用空格替换换行符 (\r\n),但我想保留空行。换句话说,如果 \r\n 前面没有另一个 \r\n,我想用 ' ' 替换 \r\n。例如:

line 1

line 2
line 3
line 4

最后还是……

line 1

line 2 line 3 line 4

但不是“第 1 行第 2 行第 3 行第 4 行”,这就是我现在正在做的事情

preg_replace("/\r\n/", " ", $string);

【问题讨论】:

    标签: php regex preg-replace newline


    【解决方案1】:

    试试这个:

     preg_replace("/(.)\r\n(?=.|$)/", "$1 ", $string);
    

    【讨论】:

    • 不。它仍然会杀死空白行。感谢您的尝试。
    • 这会将两个换行符减少为一个,第一个换行符紧跟在line 1 之后,可以被正则表达式匹配。
    【解决方案2】:

    这应该可以解决问题:

    preg_replace("/(?<!\n)\n(?!\n)/", " ", $string);
    

    【讨论】:

      【解决方案3】:

      试试这个:

      (?<!\n)\n(?!\n)
      

      当然,您可以将\n 更改为您需要的任何内容。

      工作示例:http://ideone.com/dF5L9

      【讨论】:

      • 迄今为止建议的唯一一种实际上似乎可以按要求工作的方法。 +1。
      • 美丽。我用过 (?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      相关资源
      最近更新 更多