phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?RE:_=5Bphp=5D_Rekursive_Regul=E4re_Ausdr=FCcke?=

[php] RE: [php] Rekursive Reguläre Ausdrücke

Nikolai Onken php_(at)_phpcenter.de
Wed, 17 Jul 2002 18:46:45 +0200


>~<gcms:loop>(((?>[^<>]+)|(?R))*)</gcms:loop>~

Das kommt dem Problem schon um einiges näher. Ich hatte heute auch
Philip Hazel kontaktiert und er hatte einen ähnlichen Ausdruck:

<gcms:loop[^>]*> ( (?>[^<>]+) | (?R) )* </gcms:loop>

Also im Grunde genommen genau dasselbe :)
Nur schrieb er auch, das man da keine <> tags dazwischen haben kann.
Und das brauche ich schon.
Die Tags werden ja in normalen HTML Code eingebaut
Hier ein Teil der Email von Philip Hazel (Entwickler von PCRE)
--
You want

. instead of matching ( to match <gmcs:loop>
. instead of matching "not ()" to match "not <>"

// Das stimmt so nicht
// "not ()" to match "not <gcms:loop></gcms:loop>"

. instead of matching ) to match </gcms:loop>

That assumes that there aren't going to be any other tags nested inside.
Let's try:

<gcms:loop[^>]*> ( (?>[^<>]+) | (?R) )* </gcms:loop>

That seems to work in a quick test. If you want to allow other tags
inside, it will be trickier, and I don't think I've got time at the
moment to work though it. I suspect you'll need a third branch in the
middle, and then that will get even more complicated if those tags can
nest...
--
Jaa - das hört sich kompliziert an - aber es muss doch irgendwie gehen.
Wäre wirklich super wenn ihr mir da helfen könnt - in diversen Boards,
Newsgroups, Mailinglisten konnte bis jetzt noch keine Lösung gefunden
werden.
Grüsse,

Nikolai

--
http://www.chordinversion.com


php::bar PHP Wiki   -   Listenarchive