Php 用于在没有圆点时删除EOL的正则表达式

Php 用于在没有圆点时删除EOL的正则表达式,php,regex,Php,Regex,我想找到一个正则表达式,当末尾没有点时,用字符串中的空格替换EOL,如果有点,则保留它: 我们应该保持这样: string 'extérieur et solarium. ' (length=24) EOL应替换为一个空格: string 'Salsomaggiore, dans des chambres de 2 à 3 ' (length=43) str_replace("\n", " ", $string); 到目前为止,我发现: 如何识别包含点和的字符串\n: preg_

我想找到一个正则表达式,当末尾没有点时,用字符串中的空格替换EOL,如果有点,则保留它:

我们应该保持这样:

string 'extérieur et solarium.
' (length=24)
EOL应替换为一个空格:

string 'Salsomaggiore, dans des chambres de 2 à 3
' (length=43)
  str_replace("\n", " ", $string);
到目前为止,我发现:

  • 如何识别包含点和的字符串\n:

      preg_match('.\.\n.', $string)
    
  • 如何用空格替换\n:

    string 'Salsomaggiore, dans des chambres de 2 à 3
    ' (length=43)
    
      str_replace("\n", " ", $string);
    
但我怎样才能反转第一个正则表达式并混合它们呢?
找不到它。

您想要反向查找:

(?<!\.)\r?\n
(?
描述

演示

如果有
\r\n
而不是
\n
怎么办?试着用
\r+
而不是
\n
。因为我也不明白这个答案,我发现这个网站可能会有帮助;-)@MatthiasDunkel我已经澄清了我的想法,太好了!向上投票;-)(离题:你是如何制作这张照片的?)