在字符串php中替换最后一次出现至少双新线( n n)



我需要在字符串中替换至少doubd double doubd double double double double double double double double double double double double 的最后出现Be n n n n n n n n n n n n n n n n 至少2 n )由" @@ "。我认为应该是 preg_replace 。我尝试了许多在 stackoverflow 上的答案中的选项,但是所有这些选项都有某些情况没有捕获的情况。我尝试了Regex101站点来准备正则表达式,但是我对此并不强,因此我发现了一些看起来像在网站上工作的解决方案(/((\n){2,})+(?!.*((\n){2,})+)/i),但是当我在代码中尝试使用时,我不起作用。<<<<<<。/p>

另一个是 ([\n\n])+(.[^\n\n])*$,但是这也捕获了最后一个 nn

测试字符串是:

存储 n Transformer Book中功能强大的四核Intel X5处理器T101HA意味着您将在所有日常任务中都没有任何问题, nwith witheless beemless多任务可以使您在更少的时间内完成更多的工作。存储也很方便。在内部,有128GB的超快速闪存存储,并且可以通过微型SD卡插槽轻松扩展。您还可以在华硕webstorage上获得一年的免费无限云存储! n n n dfnn

,结果应该是:

存储 n Transformer Book中功能强大的四核Intel X5处理器T101HA意味着您将在所有日常任务中都没有任何问题, nwith witheless beemless多任务可以使您在更少的时间内完成更多的工作。存储也很方便。在内部,有128GB的超快速闪存存储,并且可以通过微型SD卡插槽轻松扩展。您还可以在ASUS WebStorage上获得一年的免费无限云存储!>

任何人都可以帮忙,还可以解释回答的正则逻辑。

非常感谢。

您可以使用

/n{2,}(?!.*n{2})/s

请参阅Regex Demo

详细信息

  • n{2,}-2或更多新线
  • (?!.*n{2})-未跟随任何0 字符,紧随其后的是2个新线。

如果有任何线路破坏,请用R替换n

最新更新