如何解决SublimeText多行RegEx搜索/替换困难
我有一些配置文件,需要一些格式方面的帮助,因为不同的人/不同的笔触是正确的。我经常碰到这个问题,以至于我真的很想自动化这个过程,这可真是个好主意。
我对RegEx并不陌生,并且取得了一些成功,只是还没有取得完全的成功。 (最后我的解决方案是93%。)即使最终需要几次通过才能完成,这也没问题。 (对该宏的帮助也将非常有用。)
这是一个具体示例(来自具有MIT许可且没有专有许可的mod):
PART:NEEDS[blackheart]
{
name = stickerIDFLAGSStandard
module = Part
author = vexillar
MODEL
{
model = blackheart/Parts/stickerh/model
texture = placeholder,IDFlags/Standard/Flags/A
}
rescaleFactor = 1
node_attach = -0.05,0.0,1.0,0.0
TechRequired = start
entryCost = 6200
cost = 10
category = Utility
subcategory = 0
title = Place Anywhere Sticker Type A (IDFlags Standard)
manufacturer = Blackheart's Vinyls
description = Have you ever felt like you needed to show the world how many companies cared about your program? No? Well now you can with this vinyl sticker! Attach anywhere on your ship and you should be good to go.
attachRules = 0,1,1
mass = 0.01
dragModelType = default
maximum_drag = 0
minimum_drag = 0
angularDrag = 1
crashTolerance = 12
maxTemp = 2000
heatConductivity = 20
skinMassPerArea = 20
explosionPotential = 0
PhysicsSignificance = 0
bulkheadProfiles = srf
tags = sticker decal
MODULE
{
name = FSmeshSwitch
moduleID = 0
buttonName = Next Shape
previousButtonName = Previous Shape
objectDisplayNames = Flat;Size1;Size2;Size3
objects = stickerflat,colliderflat;sticker125,collider125;sticker250,collider250;sticker375,collider375
updateSymmetry = true
}
MODULE
{
name = FStextureSwitch2
moduleID = 5328
nextButtonText = Next ID Flag/Decal
prevButtonText = Previous ID Flag/Decal
statusText = Current
textureRootFolder = IDFlags/Standard/Flags/
textureNames = +0;+1;+2;+3;+4;+5;+6;+7;+8;+9;00;01;02;03;04;05;06;07;08;09;10;11;12;13;14;15;16;17;18;19;20;24;38;54;63;66;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z
objectNames = stickerflat;sticker125;sticker250;sticker375 //--don't change this
textureDisplayNames = 0;1;2;3;4;5;6;7;8;9;00;01;02;03;04;05;06;07;08;09;10;11;12;13;14;15;16;17;18;19;20;24;38;54;63;66;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z
debugMode = false
showInfo = false
}
DRAG_CUBE
{
none = True
}
}
我想做的是从这些文件中搜索并创建一个 适当 嵌套结构(4sp选项卡),该结构不会破坏代码折叠。我知道将需要对结构进行多次遍历以按摩结构(删除领先空间或在MODULE之间插入额外的行。)现在,我已经能够完全实现我想要的ALMOST:
搜索:(MODULE\n)(\{\n)((^.+$\n)+)(\}\n)
替换:\t$1\t{\n\t$3\t}\n
不幸的是,只有波浪形括号内的第一行代码才缩进;所以,这个...
MODULE
{
name = FSmeshSwitch
moduleID = 0
buttonName = Next Shape
previousButtonName = Previous Shape
objectDisplayNames = Size1;Size2;Size3
objects = sticker125,collider375
updateSymmetry = true
}
成为这个...
MODULE
{
name = FSmeshSwitch
moduleID = 0
buttonName = Next Shape
previousButtonName = Previous Shape
objectDisplayNames = Flat;Size1;Size2;Size3
objects = stickerflat,collider375
updateSymmetry = true
}
我开始认为我在树错了树,这个问题超出了S&R。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。