AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[PHP] Regulärer Ausdruck

Ein Thema von fkerber · begonnen am 30. Okt 2004 · letzter Beitrag vom 31. Okt 2004
Antwort Antwort
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.721 Beiträge
 
Delphi XE Professional
 
#1

[PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 15:18
Hi!

Ich hänge da jetzt seit 2 Tagen dran und bekomme es einfach nicht hin

Was "geparst" werden muss:

Code:
[quote="Test"]Test123[/quote]
Was ich dafür habe:
Code:
/\[quote="([a-zA-Z0-9-]+)"\](.*)\[\/quote\]/';

Wo das Problem liegt:
Der obige Ausdruck wird nicht durch diese RegExp erkannt. Ich weiß echt nicht, wodran das liegt.
Bitte helft mir.

Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 15:29
Hi Frederic,
mein Regexp sieht so aus:
Code:
#\[quote=(.*?)\]((.|\n)*?)\[\/quote\]#i
Aber wie du siehst verwende ich keine "", weil ich das auch nicht hinbekommen habe. Hast du vielleicht mal \" versucht?

Chris
  Mit Zitat antworten Zitat
SniperBeamer

Registriert seit: 4. Nov 2003
44 Beiträge
 
Delphi 2005 Personal
 
#3

Re: [PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 15:33
Poste doch mal den ganzen Funktionsaufruf.
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos.", Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.721 Beiträge
 
Delphi XE Professional
 
#4

Re: [PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 15:48
Hi!

Danke, Christopher, aber leider ohne Erfolg.
Es liegt auch an sich nicht an den ", es geht nämlich wenn ich nur [quote="wsss"] abfrage.

Folgende RegExp funktioniert in einem Testprogramm, allerdings nicht im Web:
Code:
\[quote="([a-zA-Z0-9-]+)"\]([\s\w]*)\[\/quote\]
bin echt am Verzweifeln


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: [PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 16:15
Hi,
hast du schonmal in der Mitte das einzusetzen, was bei mir steht, oder funktioniert das auch nicht?

Chris
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.721 Beiträge
 
Delphi XE Professional
 
#6

Re: [PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 17:04
Hi!

Also damit geht es:
Code:
\[quote="([a-zA-Z0-9-])"\]((.|\n)*)[/quote]
Zitat von "([a-zA-Z0-9-:

Man muss dazu sagen, dass ich beim eintreten diesen Falles eine Tabelle beginne und sie in jedem Fall wieder schließe. Der eingesetzte Code sieht so aus:

Code:
<table border="0" align="center" width="95%" cellpadding="3" cellspacing="1""><tr><td><span class="smallfont">[b]\1 hat geschrieben:[/b]</span></td></tr><tr><td><font size="2">\2</font></td></tr></table>
'
Hintergrund der Sache:
Versuche ich auch noch zu überprüfen, ob
am Ende vorliegt, geht es nicht, warum auch immer

Code:
\[quote="([a-zA-Z0-9-])"\]((.|\n)*)/\[\/quote\]
Wenn jemand eine wirklich korrekte Lösung hat kann sie gerne posten.

Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#7

Re: [PHP] Regulärer Ausdruck

  Alt 30. Okt 2004, 18:02
bin müde, hab nicht alles bewusst gelesen.
vorschlag:

für [ quote="..." ]...[ /quote ], nicht für [ quote ]...[ /quote ]:

Code:
\[quote="([^"]*)"\](.*?)\[/quote\]
auch für [ quote ]...[ /quote ]:

Code:
\[quote(?:="([^"]*)")?\](.*?)\[/quote\]
(hier würd ich das muster so machen /muster/e. guck mal in der doku, was das e bedeutet. da kannst du gucken, ob das muster 2 oder 1 fundstellen hat.

klappt nicht bei verschachtelten quotes a la:
Code:
[quote="..."]      [quote="..."]...[/quote]      [/quote]
dort gibts n absatz über rekursion, mit dem du das vll hinbekommen kannst.
http://de3.php.net/manual/de/referen...ern.syntax.php

alternativ kannst du auch mit preg_match das untersuchen, was du im quote hast und ggf nochmal parsen.
Christoph
char l[]="\xd6N\x96\xa6\xe6\xce.\xa6\xe4\xce\x04N\x86\xae\ xce\xfc",I,*i=l-1;for(;I=3,*i
++;){while(*i=*i&~(1<<I|1<<7-I)|(*i&1<<I)<<7-2*I|(*i&1<<7-I)>>7-2*I,I--);}puts(l);
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.721 Beiträge
 
Delphi XE Professional
 
#8

Re: [PHP] Regulärer Ausdruck

  Alt 31. Okt 2004, 00:40
Hi!

Ich werde es testen, danke.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.721 Beiträge
 
Delphi XE Professional
 
#9

Re: [PHP] Regulärer Ausdruck

  Alt 31. Okt 2004, 11:57
Hi!

Nach vielem hin und her geht jetzt folgender Ausdruck:

Code:
\[quote=\"([^ \n]+)\"\](.*)\[\/quote\]

Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf