![](/img/trans.png)
[英]Php regex - remove anything between $ and line break but leave the break
[英]Regex remove blank lines, but leave new line
我正在使用此正则表达式删除空白行:
(^[\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 ]
)字符; 这可能是整个空白行,也可能只是前一个缩进
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.