Frage zu regulären Ausdrücken...

Hallo Liste!

Suche einen regul=C3=A4ren Ausdruck, der in einem Latex-Dokument sowohl so
etwas:

\section{bla}
\section*{bla}

als auch so etwas:

\glqq{}

matcht.

Bei letzterem hat mein bisher verwendeter Ausdruck noch Probleme.
Momentan verwende ich:

#\\\\([a-zA-Z0-9\*]+)\{(.+?)\}#i

in preg_match_all.

Kann mir jemand einen Tipp geben, wie ich den hinteren Teil: \{(.+?)\}
so um=C3=A4ndern kann, damit es auch leere geschweifte Klammern matcht?

Danke schon im Voraus!
Marcus Kober.
Marcus Kober [ Fr, 21 Dezember 2007 22:22 ] [ ID #1892306 ]

Re: Frage zu regulären Ausdrücken...

Marcus Kober schrieb:

>Kann mir jemand einen Tipp geben, wie ich den hinteren Teil: \{(.+?)\}
>so umändern kann, damit es auch leere geschweifte Klammern matcht?

* statt + ?
(sorry, habs mir jetzt nicht näher angeschaut)

--
Wolfgang Fellger
Wolfgang Fellger [ Fr, 21 Dezember 2007 22:24 ] [ ID #1892307 ]

Re: Frage zu regulären Ausdrücken...

"Wolfgang Fellger" <wfnews [at] web.de> schrieb:

> * statt + ?
> (sorry, habs mir jetzt nicht n=C3=A4her angeschaut)

Nein, leider nicht, denn dann wird der Ausdruck zu gierig...
Marcus Kober [ Fr, 21 Dezember 2007 23:20 ] [ ID #1892309 ]

Re: Frage zu regulären Ausdrücken...

Marcus Kober wrote:
> "Wolfgang Fellger" <wfnews [at] web.de> schrieb:
>
>> * statt + ?
>> (sorry, habs mir jetzt nicht näher angeschaut)
>
> Nein, leider nicht, denn dann wird der Ausdruck zu gierig...

wie wärs dann mit:
#[..]#iu

Grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.
Johannes Mueller [ Fr, 21 Dezember 2007 23:55 ] [ ID #1892311 ]

Re: Frage zu regulären Ausdrücken...

"Johannes Mueller" <johannes_m [at] gmx.net> schrieb:

> wie w=C3=A4rs dann mit:
> #[..]#iu

Hm, das, in meinen Ausdruck eingebaut gibt folgenden Fehler:

"POSIX collating elements are not supported at offset ..."

Was genau macht das "u"?

Gr=C3=BC=C3=9Fe!
Marcus Kober.
Marcus Kober [ Sa, 22 Dezember 2007 01:09 ] [ ID #1892677 ]

Re: Frage zu regulären Ausdrücken (Gelöst)

"Johannes Mueller" <johannes_m [at] gmx.net> schrieb:

> wie w=C3=A4rs dann mit:
> #[..]#iu

Danke f=C3=BCr den Ansatz! Das "U" muss nur gro=C3=9F geschrieben werden, d=
ann
stehts f=C3=BCr "ungreedy".

Der richtige Ausdruck f=C3=BCr mich ist also:

#\\\\([a-zA-Z0-9\*]+)\{(.*)\}#iU

Matcht f=C3=BCr mich alles so, wie ich das brauche.

Vielen Dank und gute Nacht! :)

Gr=C3=BC=C3=9Fe!
Marcus Kober.
Marcus Kober [ Sa, 22 Dezember 2007 01:16 ] [ ID #1892678 ]

Re: Frage zu regulären Ausdrücken...

Marcus Kober schrieb:

>Nein, leider nicht, denn dann wird der Ausdruck zu gierig...

Vielleicht hätt ich Anführungszeichen drummachen sollen - das Fragezeichen
gehörte zum Satz ;-)
In deinem Ausdruck soll das Fragezeichen nach dem * natürlich stehenbleiben,
das ist grade der "Ungreedy"-Modifikator.

--
Wolfgang Fellger
Wolfgang Fellger [ Sa, 22 Dezember 2007 13:21 ] [ ID #1892684 ]

Re: Frage zu regulären Ausdrücken...

"Wolfgang Fellger" <wfnews [at] web.de> schrieb:

> Vielleicht h=C3=A4tt ich Anf=C3=BChrungszeichen drummachen sollen - das
> Fragezeichen geh=C3=B6rte zum Satz ;-)
> In deinem Ausdruck soll das Fragezeichen nach dem * nat=C3=BCrlich
> stehenbleiben, das ist grade der "Ungreedy"-Modifikator.

Ja, das hab ich gestern in der Nacht dann auch noch ausprobiert. :)
Keine Ahnung, warum mir nicht gleich eingefallen ist, mein .+? in
ein .*? umzuwandeln... :) Manchmal sitzt man eben ein wenig auf der
Leitung oder sieht den Wald vor lauter B=C3=A4umen nicht. ;)

Danke trotzdem nochmal! :)
Gr=C3=BC=C3=9Fe und frohe Weihnachten schon mal...
Marcus Kober.
Marcus Kober [ Sa, 22 Dezember 2007 13:47 ] [ ID #1892685 ]
PHP » de.comp.lang.php.misc » Frage zu regulären Ausdrücken...

Vorheriges Thema: Datenbank nach bestimmtem Kriterium sortieren
Nächstes Thema: Index aus assoziativem Array auslesen