Exen im Regen - RegEx - Alles über Reguläre Ausdrücke in streamWriter
() |
Dient der Gruppierung von Suchmustern. |
.* |
Bedeutet 'unendlich viele beliebige Zeichen'. |
.*? |
Die minimal nötige Menge wird nur gefunden. |
\d+ |
Erkennt Ziffernt ein- oder mehrmals. |
| |
ODER-Ausdruck. |
Escaping
"\":
Bei
einigen Suchmuster-Zeichen ist ein 'Escaping' erforderlich welches
mit dem BACKLASH-ZEICHEN "\"
eingeleitet wird. Das Backslash-Zeichen hebt die besondere Bedeutung
von Metazeichen auf:
+
? . * ( ) ^ $ [ { | \
um
diese Literal suchen zu können.
Beispielsweise
wird nach dem Zeichen "["
(ohne Anführungszeichen) gesucht, so muss dieses wie folgt
angegeben werden: "\["
(ebenfalls
ohne Anführungszeichen).
Benannte
Gruppen (Named Groups) - (?P<variablenname>):
Hierbei
handelt es sich um eine Gruppierung
von Suchmustern die lediglich für interne Zwecke Benannt
wird.
Zeichenketten,
die von eingeklammerten Suchmustern gefunden wurden, werden in eine
temporäre Benannte Variable (Named-Subpattern) intern von
streamWriter zwischengespeichert. Dies ist notwendig damit
streamWriter erkennen kann ob es sich bei der jeweiligen
Suchmuster-Gruppierung um eine Künstler-, Songtitel- oder um
eine Album Bezeichnung handelt.
In
streamWriter sind zur zeit folgende variablen Namen für die
Suchmustergruppierung vergeben:
Variable: |
Zuordnung: |
<a> |
Künstler (Artist) |
<t> |
Songtitel (Title) |
<l> |
Album (*) |
Titel im Stream des Senders: |
Regulärer Ausdruck für streamWriter: |
KÜNSTLER - TITEL | streamed by pop-stream.de |
(?P<a>.*) - (?P<t>.*) \| (.*) |
KÜNSTLER - TITEL [onAir: Moderator] |
(?P<a>.*) - (?P<t>.*) \[(.*)\] |
KÜNSTLER - TITEL 19:15 |
(?P<a>.*) - (?P<t>.*) (\d+):(\d+) |
Sie hören: TITEL / KÜNSTLER |
Sie hören: (?P<t>.*) / (?P<a>.*) |
On Air: ARTIST mit TITLE |
On Air: (?P<a>.*) mit (?P<t>.*) |
Umsetzung bei den RegEx-Online-Testern:
Die
meisten Online Tester für Reguläre Ausdrücke können
keine sogenannten NAMED
GROUPS
"(?P<name>)"
umsetzen,
d.h. Es sind Abwandlungen der in streamWriter verwendeten
Darstellungen notwendig. Bei dem "(?P<name>.*)"
muss
in solchen Onlinetestern das "?P<name>"
jeweils
entfernt werden, bzw. sollte der Eintrag denn so "(.*)"
aussehen:
streamWriter |
Online Tester |
(?P<a>.*) - (?P<t>.*) |
(.*) - (.*) |
(?P<a>.*) - (?P<t>.*) \[.*\] |
(.*) - (.*) \[.*\] |
Empfehlung
für 'Meta Tags' (ID3-Tags):
Da
bei einigen zu Recherche Zwecken interessante Sendeeinformationen
durch eine 'verwerfen' Option in den 'RegEx'
Eintragungen verloren gehen könnten, empfehle ich denn 'Titel
im Stream' (%u) im 'Kommentar TAG' einzustellen bzw. zu
verankern. Diese kann in 'Einstellungen
-> Nachbearbeitung -> ID3 Tags setzen ->Konfigurieren'
vorgenommen werden.
Empfohlene
einstellung für Kommentar-TAG:
"%u ¶
%s ¶ %d ¶ %i ¶ Recordet by streamWriter"
Kurze
erläuterungen der einzelnen Parameterdefinitionen:
%u |
Ungekürzter Titel im Stream |
%s |
Stream-/Sendername |
%d |
Speicherdatum |
%i |
Speicherzeit |
Das
Sonderzeichen "¶"
macht sich ganz gut zur Trennung der einzelnen Parameter da dieses
bisweilen noch kein Sender bei der Übermittlung seiner
Informationen verwendet. Wenn die Eingabe-Tastatur über ein
'Numpad' verfügt, läst sich durch Drücken der
ALT-Taste
und
der Eingabe der Zahl 20
das Sonderzeichen bequem einfügen.
Siehe auch: Wiki
// Einstellungen //
Nachbearbeitung:
http://streamwriter.org/de/wiki/artikel/settings/#postprocessing
Weblinks:
Alles
über
"RegEx":
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
http://www.regenechsen.de/phpwcms/index.php?regex
http://www.regexe.de/hilfe.jsp
http://openbook.galileocomputing.de/python/python_kapitel_15_002.htm
http://perl-6.de/tutorials/regex
Liste
der
RegEx-Elemente:
http://www.regenechsen.de/phpwcms/index.php?regex_allg_liste
http://www.regexe.de/hilfe.jsp
Online
tester:
http://www.regexe.de/
http://regexp-tester.mediacix.de/exp/regex/
http://www.regextester.com/
Benannte
Gruppen (Named
Groups):
http://www.regular-expressions.info/named.html (Englisch)
http://openbook.galileocomputing.de/python/python_kapitel_15_002.htm
Weblinks
für die Arbeit mit 'RegEx' in streamWriter:
Online
Tester:
http://www.regexe.de/
RegEx-Elemente:
http://www.regenechsen.de/phpwcms/index.php?regex_allg_liste