Ich versuche, reguläre Ausdrücke in Sublime 3 zu verwenden, um den gesamten Inhalt zwischen zwei Zeichenfolgen, eine XML-Datei zu entfernen.Entfernen Sie den gesamten Inhalt zwischen zwei Zeichenfolgen mit regulären Ausdrücken
Angenommen, dies ist mein Gehalt ist:
<Body name="ground">
<mass>0</mass>
<mass_center> 0 0 0</mass_center>
<inertia_xx>0</inertia_xx>
<inertia_yy>0</inertia_yy>
<inertia_zz>0</inertia_zz>
<inertia_xy>0</inertia_xy>
<inertia_xz>0</inertia_xz>
<inertia_yz>0</inertia_yz>
<!--Joint that connects this body with the parent body.-->
<Joint />
<VisibleObject>
<!--Set of geometry files and associated attributes, allow .vtp, .stl, .obj-->
<GeometrySet>
<objects />
<groups />
</GeometrySet>
<!--Three scale factors for display purposes: scaleX scaleY scaleZ-->
<scale_factors> 1 1 1</scale_factors>
<!--transform relative to owner specified as 3 rotations (rad) followed by 3 translations rX rY rZ tx ty tz-->
<transform> -0 0 -0 0 0 0</transform>
<!--Whether to show a coordinate frame-->
<show_axes>false</show_axes>
<!--Display Pref. 0:Hide 1:Wire 3:Flat 4:Shaded Can be overriden for individual geometries-->
<display_preference>4</display_preference>
</VisibleObject>
<WrapObjectSet>
<objects />
<groups />
</WrapObjectSet>
</Body>
Jetzt nehme ich nur alle Inhalte zwischen <VisibleObject>
und </VisibleObject>
verlassen entfernen möge:
<Body name="ground">
<mass>0</mass>
<mass_center> 0 0 0</mass_center>
<inertia_xx>0</inertia_xx>
<inertia_yy>0</inertia_yy>
<inertia_zz>0</inertia_zz>
<inertia_xy>0</inertia_xy>
<inertia_xz>0</inertia_xz>
<inertia_yz>0</inertia_yz>
<!--Joint that connects this body with the parent body.-->
<Joint />
<VisibleObject>
</VisibleObject>
<WrapObjectSet>
<objects />
<groups />
</WrapObjectSet>
</Body>
Es gibt ein paar ähnlichen Themen und Probleme, zu dem oben genannten, aber keiner von ihnen scheint besonders gut (oder überhaupt) für dieses Problem zu arbeiten.
Jede Hilfe würde am meisten geschätzt werden.
Wie wäre es mit Find '() [\ S \ s] *? ( VisibleObject>)', Ersetzen Sie $ 1 $ 2? –
sln
Mit Notepad ++ können Sie XSLT-Transformationen verwenden und beliebige XML-Dateien problemlos ändern. Nicht sicher, ob Sublime Text das Ändern von XML-Dateien mit XSLT unterstützt. –
Tatsächlich, wie @ WiktorStribiżew erwähnt, kann dies leicht mit XSLT gehandhabt werden, indem eine Identitätstransformation ausgeführt wird und dann das '' - Element neu geschrieben wird. Außerdem wird dringend empfohlen, Regex nicht in [X/HTML-Dokumenten] zu verwenden (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags). –
Parfait