假设我们有以下PHP代码:
if (true)
{
doSomething();
}
但我们希望拥有:
if (true) {
doSomething();
}
我认为我们可以使用Perl就地批量编辑工具在整个代码库中进行这种更改.
但是我只是不能让它匹配换行符,后跟空白然后是大括号.
这是我正在尝试的
perl -pi -w -e 's/if(.*)\n\s+\{/if$1 \{/g' testfile.php
我完全不知所措;它匹配,如果我不包括空格和括号.但这不是很有帮助.
解决方法:
使用-p会使Perl一次遍历文件的每一行,从而阻止您在多行中匹配内容.
您可以使用-0将输入记录分隔符设置为null,并使Perl一次读取整个文件. (请参阅perlrun.)
您可以尝试如下操作:
perl -p0iwe 's/\bif\b(.*)\n\s*\{/if$1 \{/g' test.php
请注意,这不是编辑PHP的好方法.字符串,注释和文件的文本内容只是很容易打破这种简单化解决方案的几件事.我建议找到适合该工作的工具.一些编辑器/ IDE支持(重新)格式化代码,也许您可以尝试其中一种.