Fahrtenbuch genial!
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 10.12.2002, 20:24   #1
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein

REGEXP (mal wieder...)


Nabend!

Verrät mir jemand, wie ich mit der REGEXP-Funktion von MySQL nach folgendem Muster suchen kann:

PHP-Code:
"name";typ:länge:"inhalt"
wobei 'name', 'typ', 'länge' und 'inhalt' variabel sind und alle übrigen Zeichen genau so an den Stellen enthalten sein müssen, wie etwa das hier:

PHP-Code:
"activator_key";s:16:"dd644fd7e530d079"
Das ist das Muster, in dem die PHP-Funtkion serialize() Arrays bzw. ihre Elemente serialisiert. Wer den Thread 'Objektorientiertes Speichern' gelesen hat, weiß, was ich damit will ;).

Achja, mein bisheriger Versuch, der nicht funktioniert:

PHP-Code:
'"' $name '";[a-z]:([0-9])*:".' $inhalt '.";' 
seb ist offline   Mit Zitat antworten


Alt 10.12.2002, 21:02   #2
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Vertausch mal ) und *, also:

'"' . $name . '";[a-z]:( [0-9]*):".' . $inhalt . '.";'
webmichl ist offline   Mit Zitat antworten
Alt 10.12.2002, 21:07   #3
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Klappt leider auch nicht
seb ist offline   Mit Zitat antworten
Alt 10.12.2002, 21:18   #4
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Wenn ich wüsste, wie mySQL mit regexp's umgeht...


Die zu durchsuchenden Werte sehen so aus wie den Beispiel? Dann sollte es eigentlich passen

Maskier mal die Semikoli mit einem Backslash:

'"' . $name . '"\;[a-z]:([0-9])*:".' . $inhalt . '."\;'
webmichl ist offline   Mit Zitat antworten
Alt 10.12.2002, 21:35   #5
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
PHP-Code:
'.[\'\"' $name '\";\'][:alpha:]:[[:digit:]][\'\:\"' $inhalt '\"\'].'
Das funktioniert, aber noch 'zu gut'. Ich denke, ihm ist die Reihenfolge der Zeichen in $inhalt und $name egal. Falls das der Grund ist - wie krieg ichs hin, dass die als zusammenhängende Zeichenfolgen in der richtigen Buchstabenfolge gewertet werden? Einfassen und Anführungsstriche etc. bringt anscheinend nix.
seb ist offline   Mit Zitat antworten
Alt 10.12.2002, 22:21   #6
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Ich habs fast:

PHP-Code:
"content\";[[:alpha:]]:[[:digit:]]:\".*elefant.*\"; 
Das arbeitet fast wie gewollt, nur noch ein letztes Problem:

Dieses Muster wird nur dann gefunden, wenn im überprüften String hinten

PHP-Code:
."elefant"
steht - also exakt die Zeichenfolge zwischen den Anführungsstrichen. Wenn irgendwelche Zeichen davor oder danach stehen, reagiert es nicht.
Dieses .* (punkt-stern) ist aber laut MySQL-Doku der richtige Platzhalter für beliebig viele beliebige Zeichen, müsste also richtig sein. Wenn der Rest jetzt so gut klappt, warum dann das nicht? grmpf...
seb ist offline   Mit Zitat antworten
Alt 10.12.2002, 22:28   #7
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Im Moment suchst Du die beliebigen Zeichen innerhalb der Anführungszeichen, also "blablaElefantblabla". Ist das so OK?
webmichl ist offline   Mit Zitat antworten
Alt 10.12.2002, 22:31   #8
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
ja, exakt so solls sein. Ich glaub wirklich, dass das soweit korrekt ist, eben bis auf das beliebige-zeichen-davor-und-danach-problem. Aber das is hartnäckig...

er findet jetzt nur "elefant", aber nicht "im zoo gibt es elefanten" oder "fisch ente elefant tiger giraffe" - aber das soll auch gehn.
seb ist offline   Mit Zitat antworten
Alt 10.12.2002, 22:37   #9
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User

moment...


...ich meine, ich hätte das Problem auch schon mal gehabt. Versuch doch mal:

"content\";[[:alpha:]]:[[:digit:]]:\".*elefant[^\"]*\";

Damit sucht er nicht alle beliebigen Zeichen, sondern alle bis zum " ... irgendsowas war's bei mir
webmichl ist offline   Mit Zitat antworten
Alt 10.12.2002, 23:02   #10
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Awww shit...hat sich erledigt

PHP-Code:
"content\";[[:alpha:]]:([[:digit:]])*:\".*elefant.*\"; 
Es lag nicht am Punkt-Stern, sondern am [[:digit:]] - so geschrieben gilt das ja als nur eine Ziffer, und ich hab nicht bedacht, dass an der Stelle auch eine mehrstellige Zahl stehen kann.

Meine Ein-Wort-Tests klappten durch Zufall, weil die Zahl dabei immer einstellig war (Länge des Strings in den Anführungsstrichen, das ganze ist ein per serialize() serialisiertes Array) - sobald der String länger als 9 Zeichen wurde, ist es an dieser Stelle hängengeblieben. Mann...
seb ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
REGEXP (mal wieder...) REGEXP (mal wieder...)
« objektorientiertess speichern | Suchen in einer MySQL-DB mit PHP »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:57 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67