Speedcube.de Forum

Normale Version: Algorithmen-Plugin
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Neulich hab' ich auf speedcubers.de den Vorschlag gelesen, dass es doch ganz praktisch wäre, wenn man mit [alg]-Tags Algorithmen nach http://alg.garron.us/ verlinken könnte.

Deshalb hab ich ein experimentelles Plugin installiert, welches folgende Möglichkeiten bietet:
Code:
[alg]F R U R' U' F'[/alg] (Standard 3x3)
[alg]F R U R' U' F'[/alg] (Standard 3x3)

oder: [*alg=4]r2 B2 U2 l U2 r' U2 r U2 F2 r F2 l' B2 r2[/alg] (Cubegrösse angeben)
[alg=4]r2 B2 U2 l U2 r' U2 r U2 F2 r F2 l' B2 r2[/alg]

Ich bastel noch daran, dass das Plugin Algorithmen von selbst erkennt und verlinkt, aber das spielt noch verrückt.
Falls die Sterne und die fehlenden schliessenden Tags nicht nur mich verwirrten... so geht's tatsaechlich Smile

Code:
[alg]F R U R' U' F'[/alg]
Finde ich super Smile
Sorry wegen dem fehlenden Code Smile

Also das selbsterkennen dürfte bald funktionieren, hat halt noch ein paar Bugs.
Hoert sich verdammt gut an. Wenn dann nochmal jemand nen fehlerhaften Algo schreibt, wird das schoen peinlich aussehen Tongue
Okay, ich bin voraussichtlich zu doof für reguläre Ausdrücke :/
Irgendwann krieg ich das hin!
Wie sehen sie denn bisher aus? Vielleicht koennen wir ja helfen...
Okay, habs hinbekommen:

Code:
#(?<!U|U'|U2|D|D'|D2|F|F'|F2|B|B'|B2|R|R'|R2|L|L'|L2)(((F|B|R|L|U|D)('|2){0,1}(\x20?)){3,})(?!U|U'|U2|D|D'|D2|F|F'|F2|B|B'|B2|R|R'|R2|L|L'|L2)#
=>
<a href=\"http://alg.garron.us/?alg=$1&animtype=solve\" target=\"_blank\">$1</a>

Was mir aber noch nicht gefällt, ist die einzelne Aufzählung der Möglichkeiten (weil Assertions keine Subpatterns mit variabler Zeichenlänge nehmen) und folgendes:

Schreibt ich z.B. R U R' U' wird das nun ganz normal verlinkt.
Schreibe ich aber R U R' U Und danach einen Buchstaben, der zum Algo gehören könnte, würde hier das U von Und mitverlinkt werden. Ansonsten geht das teil ganz gut.

EDIT: Letzteres ist nun auch behoben. Ich hab einfach (\x20?) ("vielleicht eine Leertaste") durch (\x20|[^[:alnum:]]) ("Eine Leertaste oder kein alphanummerisches Zeichen") ersetzt.
Okay, hat doch noch Probleme, die ich so einfach nicht beheben kann. Ich diskutiere schon eine Weile mit den Profis. Hier zum Mitlesen:
http://www.php.de/php-einsteiger/82408-r...ennen.html
(21.07.2011, 23:52)Felk schrieb: [ -> ][code]#(?<!U|U'|U2|D|D'|D2|F|F'|F2|B|B'|B2|R|R'|R2|L|L'|L2)(((F|B|R|L|U|D)('|2){0,1}(\x20?)){3,})(?!U|U'|U2|D|D'|D2|F|F'|F2|B|B'|B2|R|R'|R2|L|L'|L2)#

Ein paar Verkuerzungsmoeglichkeiten:

[UDFBLR]['2]?
statt
U|U'|U2|D|D'|D2|F|F'|F2|B|B'|B2|R|R'|R2|L|L'|L2
und
(F|B|R|L|U|D)('|2){0,1}

Die Abgrenzung zu Woertern geht denk ich am besten mit \b (word boundary), also dass du sagst, der Buchstabe soll immer alleine stehen:

\b[UDFBLR]\b

Der Gesamtausdruck koennte also so funktionieren:

#((\b[UDFBLR]\b['2]? ?){3,})#
Seiten: 1 2 3 4