# escape-Funktion für Export-Konfigurationen

**URL:** https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550
**Category:** Vorschläge
**Created:** [November 30, 2008, 10:38pm UTC](https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550 "2008-11-30T22:38:37Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![LosMintos](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/54ee81/32.png) [@LosMintos](https://community.mp3tag.de/u/LosMintos)
#### Post date: [November 30, 2008, 10:38pm UTC](https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550/1 "2008-11-30T22:38:37Z")

</div>

Hallo,

vielleicht gibt es das Feature schon, aber ich finde es nicht. Dann ignoriert bitte den Wunsch und zeigt mir den Weg :-)!

Beim Exportieren der Tags in andere Formate ist oft ein replace nötig, um eine bestimme Syntax zu erfüllen. Zum Beispiel erfordert der Export zu LaTeX die Maskierung verschiedener Sonderzeichen. Ähnliches gibt es in HTML.

Das führt dann zu Zeilen, die dieser:

```
$replace($replace($replace($replace($replace($replace($replace(%album%,&,\&),#,\#{}),",''),$,\${}),°,\degree{}),¡,!`),'%',\'%'{})

```

7 Aufrufe von replace (es müssten noch mehr sein, hier sind nur die berücksichtigt, die ich gerade brauche). Geht das auch einfacher?

Meines Erachtens wäre es schön, solche Schachtelaufrufe vorzudefinieren und mittels $escape=TeX(%album%)verfügbar zu machen.

Was meint ihr?

---

<div class="post-metadata">

### Author: ![Moonbase](https://community.mp3tag.de/user_avatar/community.mp3tag.de/moonbase/32/207_2.png) [@Moonbase](https://community.mp3tag.de/u/Moonbase)
#### Post date: [December 1, 2008, 1:12am UTC](https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550/2 "2008-12-01T01:12:05Z")

</div>

Hee hee, _das_ wär’ ’ne feine Sache. Andererseits ändern sich natürlich »externe Softwares« auch mal, da wäre eine Anpassbarkeit schön. Allerdings habe ich in den letzten Wochen auch ziemlich rumgebastelt, bis ich denn nun endgültig sämtliche potentiell »gefährlichen« Varianten für CMD-Batchfiles rausgefunden und »entschärft« hatte.

Vielleicht mal so als Vorschlag »for the time being«: Wie wär’s, wenn man – vielleicht aufbauend auf einem »Gerüst« hier eine Liste der erfolgreich und gut funktionierenden »Escaping-Funktionen/-Aktionen« im Forum posten würde?

Als Anregung: Wie wäre es, wenn man statt »festen« String-Escape-Funktionen sowas allgemeines einbauen würde, wie etwa  
**$escape(source\_string, liste\_der\_zu\_escapenden\_zeichen, escapestring\_links, escapestring\_rechts)**

wobei

_liste\_der\_zu\_escapenden\_zeichen_  
entweder eine Liste der Zeichen wäre (halte ich für unflexibel)  
oder eine Liste der zu escapenden _Strings_ (viel flexibler)

_escapestring\_links_  
der String oder das Zeichen, das zum Escapen links neben dem eigentlichen Zeichen/String eingefügt werden muss

_escapestring\_rechts_  
der String oder das Zeichen, das zum Escapen rechts neben dem eigentlichen Zeichen/String eingefügt werden muss (dieser Wert sollte optional weggelassen werden können)

Falls man eine »Liste der zu escapenden _Strings_« macht, wäre es natürlich sinnvoll, einen (optionalen) Parameter »Listentrennzeichen« zu haben, denn das ist sicher nicht immer gleich. (Wenn Listentrennzeichen angegeben, auswerten, sonst _liste\_der\_zu\_escapenden\_zeichen_ als Einzelzeichen behandeln.)

Also etwa:  
**$escape(source\_string, liste\_der\_zu\_escapenden\_zeichen, listentrennzeichen, escapestring\_links, escapestring\_rechts)**

Dann gingen solche Sachen wie z.B. für Batch Files  
**$replace($escape(%string%,'\<|\>"&^',,^,),'%','%%')**

oder für LaTeX (aus dem Kopf, könnte fehlerhaft sein)  
**$escape(%string%,'$&%#\_{}~^',,{,})**

oder für irgendwas (mir fällt grad kein Beispiel ein)  
**$escape(%string%,'der|die|das',|,'[',']')**  
**$escape(%string%,'wer;wie;was',';','\<\<','\>\>')**

_Andererseits_ ist das alles natürlich nur ein bissl »verkapptes RegExp«, also mein Batch File-Beispiel oben könnte man auch bequem so schreiben:  
**$replace($regexp(%string%,('[''('')'\<|\>"&^']'{1}),^$1),'%','%%')**

Mal sehen, was die Gemeinde und das Development so meinen 😉

---

<div class="post-metadata">

### Author: ![dano](https://community.mp3tag.de/user_avatar/community.mp3tag.de/dano/32/6_2.png) [@dano](https://community.mp3tag.de/u/dano)
#### Post date: [December 1, 2008, 6:57am UTC](https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550/3 "2008-12-01T06:57:15Z")

</div>

> [@](#):
>
> 7 Aufrufe von replace (es müssten noch mehr sein, hier sind nur die berücksichtigt, die ich gerade brauche). Geht das auch einfacher?

Die replace Funktion wurde erweitert, man kann beliebig viele Ersetzungspaare anhängen:  
$replace(text,a1,a2,b1,b2,c1,c2,...)

---

<div class="post-metadata">

### Author: ![LosMintos](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/54ee81/32.png) [@LosMintos](https://community.mp3tag.de/u/LosMintos)
#### Post date: [December 1, 2008, 11:23am UTC](https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550/4 "2008-12-01T11:23:30Z")

</div>

> [@dano](#):
>
> Die replace Funktion wurde erweitert, man kann beliebig viele Ersetzungspaare anhängen:  
> $replace(text,a1,a2,b1,b2,c1,c2,...)

Danke für den Hinweis!

---

<div class="post-metadata">

### Author: ![Moonbase](https://community.mp3tag.de/user_avatar/community.mp3tag.de/moonbase/32/207_2.png) [@Moonbase](https://community.mp3tag.de/u/Moonbase)
#### Post date: [December 2, 2008, 4:43am UTC](https://community.mp3tag.de/t/escape-funktion-fur-export-konfigurationen/7550/5 "2008-12-02T04:43:04Z")

</div>

Ja wie geil ist DAS denn! _Merci_  
Werden die _zusammen_ oder _in Folge_ (rechts nach links? links nach rechts?) abgearbeitet?

(Doku ist _immer_ ein Problem, ich kenn’ das, aber vielleicht wäre es gut, ab und an die Hilfeseiten mal wieder zu überarbeiten und die ganzen hier verteilt notierten neuen Sachen da einzubauen …)
