Reguläre Ausdrücke für Fortgeschrittene - am Beispiel XSL bzw. XSLTsteemCreated with Sketch.

in #utopian-io6 years ago (edited)

Reguläre Ausdrücke für Fortgeschrittene - am Beispiel XSL bzw. XSLT




DQmPiKcYtB7kqiL7JBjL6JuybPbUPxNvxTAkFarMCAP5xZK_1680x8400.jpeg


Vorrede:

In vielen Situationen steht der Entwickler vor der Wahl, sich wiederkehrende Arbeiten mit einem kleinen Script oder Hack zu erleichtern. Ein Mittel der Wahl kann in vielen Fällen lange Entwicklungszeit sparen, wenn man z.B. nur langweilige Änderungen vor hat, die auf Ähnlichkeiten und Wiederholungen basieren.

Beispiel aus der Praxis:

Problemstellung:

Ich habe ein lange Liste mit XSL-Ausdrücken. Um den Quellcode sauberer, also stabiler zu gestalten, möchte ich alle Textelemente die noch frei rumhüpfen in ein value-of packen.

Das Muster, nachdem diese Lücken aufgebaut sind, ist immer gleich, da es sich um XML-Strukturen in XSL handelt.

Ziel:

z.b. aus
<nachr:BiPROVersion>2.5.1.1.1</nachr:BiPROVersion>
soll

<nachr:BiPROVersion><xsl:value-of select="'2.5.1.1.1'"/></nachr:BiPROVersion>
werden

Lösung:

Mit der Suche- und Ersetzefunktion in der Entwicklungsumgebung markiere ich

SUCHE:

<(.+?)(\s.+?)?>([^<>]+?)</\1>

ERSETZE:

<$1$2><xsl:value-of select="'$3'"/></$1>

Bildschirmfoto 2018-08-09 um 09.58.18.png

Hinweis: Ersetzt werden auch auskommentierte Anweisungen.

Ergebnis ( Auszug ):


Bildschirmfoto 2018-08-09 um 10.39.24.png


Bildschirmfoto 2018-08-09 um 10.39.34.png

Quellen / Hinweise:



#xsl #xslt #webdevelopment #code #coding #dev #development #programming #codedesign #codereview #cleancode #steemit #steem #stem #de-stem #steemstem #busy #xsl-fo #xml #transform #transformation #hack #hacks #regex #reularexpression #help #develop #utopian-io #technology #science #sql #php #phpstorm #codeeditor #german #germany #deutsch



rect4138.png

Sort:  

Vermutlich kennst Du es schon - ich finde es einfach erfrischend:
https://regexcrossword.com/

Leider hab ich es erst sehr späht gesehen, aber schöne Idee. Ich mag solche Code-Trainingsseiten. Vielen Dank! Wenn Du kommentierst, vote ich Dich nachträglich. :)