用于缩进行的正则表达式

发布于 2024-10-20 18:27:27 字数 606 浏览 4 评论 0原文

我正在尝试以我喜欢的方式大规模缩进我的代码 - 也就是说,每行应该缩进 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。

我尝试了这个正则表达式替换命令:

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

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

谢谢。

I'm trying to mass indent my code in the way I prefer it - that is, each line should be indented by groups of 4 spaces, depending on how 'deep' that line is in code (e.g. children elements should get 4 extra than their parent).

Currently everything has 1 space (a sample from my code):

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

I'd like to have it get 4 spaces for the first level, 8 for the second etc. So basically multiply the amount with 4.

I tried this Regex replace command:

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

But this only replaces the first space of each line with 4 spaces. How can I also make it replace 2 spaces with 8 spaces etc.?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

偏爱自由 2024-10-27 18:27:27

试试这个:

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

Try this:

^(\s+)  //search for
$1$1$1$1 //replace with
杯别 2024-10-27 18:27:27

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

I think Cybernate is right. Just thought I'd mention you could accomplish this without any code by using block edit (column edit) feature in your favorite text editor (such as Notepad++, Coda etc.)

爱,才寂寞 2024-10-27 18:27:27

假设您使用的是 perl 系统,您可以这样做:

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

即将行开头的空格替换为四倍的空格。

Assuming you are on a system with perl, you could do this:

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

That is, replace spaces in the beginning of a row by four times as many spaces.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文