gpt4 book ai didi

php - 正则表达式删除空行,但保留新行

转载 作者:行者123 更新时间:2023-12-02 17:35:11 26 4
gpt4 key购买 nike

我正在使用这个正则表达式来删除空行:

(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+

在 PHP 中:

$search = array(
'@( |\t|\f)+@', // Shorten multiple whitespace sequences
'@^\s+|\s+$@', // Trim lines
'@(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+@' //Remove blank lines
);
$replace = array(' ','',"\r\n");
$string = preg_replace($search, $replace, $string);

但是我在这段代码中遇到了一些问题:
原文:

 <script type="text/javascript">
//<![CDATA[
iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>

替换后:

<script type="text/javascript">
//<![CDATA[iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>

我想得到什么:

<script type="text/javascript">
//<![CDATA[
iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>

我用 regex101 ( FIDDLE ) 做了一些测试,它给了我正确的结果,但我无法在真实环境中实现相同的目标


编辑
更改查找正则表达式(修剪产生了一些问题):

$search = array(
'@( |\t|\f)+@', // Shorten multiple whitespace sequences
'@^\s+|[ \t]+$@gmi' //Remove blank lines
);
$replace = array(' ','');
$string = preg_replace($search, $replace, $string);

还是有问题

最佳答案

我认为这就是您想要的:^\s+


使用:

$string = preg_replace('/^\s+/m', '', $string);

解释:

  • ^ 使用 m 多行修饰符
  • 锚定到新行的开头
  • \s+ 找到 1+ 个空格 ([\r\n\t\f ]) 字符;这可以是一个完整的空行或只是前面的缩进

关于php - 正则表达式删除空行,但保留新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com