缩进行的正则表达式

时间:2011-03-04 19:45:20

标签: html regex indentation

我正在尝试以我喜欢的方式对代码进行批量缩进 - 也就是说,每行应该由4个空格的组缩进,具体取决于代码中该行的“深度”(例如,子元素应该得到)比他们的父母多4个。)

目前一切都有1个空格(来自我的代码的样本):

<html>
 <head>
  <title>Test</title>
  <link rel="stylesheet" href="style.css">
  <script src="jquery.js"></script>
  <script src="loadfiles.js"></script>
 </head>
...

我想让它为第一级获得4个空格,为第二级获得8个等等。所以基本上将数量乘以4。

我尝试了这个Regex替换命令:

^ (.*)$      // search for
    $1       // replace with

但是这只用4个空格替换每行的第一个空格。我怎样才能用8个空格等替换2个空格?

感谢。

3 个答案:

答案 0 :(得分:9)

试试这个:

^(\s+)  //search for
$1$1$1$1 //replace with

答案 1 :(得分:1)

我认为Cyber​​nate是对的。只是想到我提到你可以通过在你喜欢的文本编辑器中使用块编辑(列编辑)功能(如Notepad ++,Coda等)而无需任何代码来完成此任务。

答案 2 :(得分:1)

假设你在使用perl的系统上,你可以这样做:

cat original.html | perl -lpe 's/^( +)/" "x(length($1) * 4)/e' > indented.html

也就是说,将行开头的空格替换为空格的四倍。