我正在使用这个正则表达式来删除空行:
(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+
Run Code Online (Sandbox Code Playgroud)
在 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);
Run Code Online (Sandbox Code Playgroud)
但是我对这段代码有一些特别的问题:
原始:
<script type="text/javascript">
//<![CDATA[
iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>
Run Code Online (Sandbox Code Playgroud)
更换后:
<script type="text/javascript">
//<![CDATA[iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>
Run Code Online (Sandbox Code Playgroud)
我想获得什么:
<script type="text/javascript">
//<![CDATA[
iCart.init({
title: 'Aggiungi',
cart: 'Carrello',
....
</script>
Run Code Online (Sandbox Code Playgroud)
我已经用 regex101 ( FIDDLE )做了一些测试,它给了我正确的结果,但我无法在真实环境中实现相同的目标
编辑
更改查找正则表达式(修剪产生了一些问题):
$search = array(
'@( |\t|\f)+@', // Shorten multiple whitespace sequences
'@^\s+|[ \t]+$@gmi' //Remove blank lines
);
$replace = array(' ','');
$string = preg_replace($search, $replace, $string);
Run Code Online (Sandbox Code Playgroud)
但是还是有问题
我认为这就是你想要的: ^\s+
用:
$string = preg_replace('/^\s+/m', '', $string);
Run Code Online (Sandbox Code Playgroud)
解释:
^使用m多行修饰符定位到新行的开头\s+找到 1+ 个空格 ( [\r\n\t\f ]) 字符;这可能是一个完整的空行或只是前面的缩进| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |