Mailinglist Archive: opensuse-de (4770 mails)
| < Previous | Next > |
Re: Regular Expressions Teil 2
- From: B.Brodesser@xxxxxxxxxxxxxx (Bernd Brodesser)
- Date: Mon Nov 06 05:15:11 2000
- Message-id: <20001106061511.E11068@xxxxxxxxxxxxxx>
Hallo Maik,
* Maik Holtkamp schrieb am 06.Nov.2000:
> On 00/11/05@19:45 Bernd Brodesser told me in 93lines (3,3K):
> > Bei manchen Programmen kann \1 für das erste Auftreten einer Gruppe
> > geschrieben werden und \2 für das zweite usw. usf:
> > Beispiel:
> > (a*)b\1 steht für b oder aba oder aabaa oder aaabaaa, nicht aber für
> > abaa oder aaba.
> Jetzt brüte ich schon über ein Stunde aber ich krieg es einfach
> nicht rein :(.
>
> Wieso muß paßt denn abaa und aaba nicht?
> Würde cbc passen (wegen dem * in der Klammer)?
Jein. Von c ist niergends die Rede. Da aber ein RegExp nach einem
Teilstring sucht, würde es passen, da es auf b alleine paßt. War
insofern ein schlechtes Beispiel. Besser ist
^([acd]*)b\1$
darauf paßt aba oder cbc oder dbd oder acbac oder ddacbddac, nicht
aber dbc oder acdbdca. Wegen der ^ und $ paßt denn auch kein ebe.
> Ich vermute mein Problem liegt:
> 1. im Verständnis der Klammer (laut Nutshell Gruppierung)
Ja und ja.
> 2. am Verständnis \1 (bezieht sich das auf nur b oder auf alles)
Nur auf das was geklammert wurde. Also im ersten Beispiel das a* und
im neuen Beispiel das [acd]*. Auf das b im ersten Beispiel bezieht es
sich gerade nicht.
> Was ich sehe ist, dass der Ausdruck in Prosa heißt:
> Ein b mit re/li gleich vielen as drum herum.
Haargenau so ist es. Genauer noch ein b mit rechts und links das
Gleiche. Das \1 besagt, genau das was in der ersten Gruppierung steht.
> Das kann ich an dem Ausdruck aber beim besten Willen nicht erkennen
> :(. Hinter dem b ist doch Schluß mit dem eigentlichen Ausdruck wieso
> werden denn da noch as erlaubt?
Wegen dem \1. Um es noch was verwirrender zu machen:
^(a*)(b*)c\2\1$ paßt auf abcba und aabcbaa und abbcbba, nicht aber auf
abbcaab. Die \2 bezieht sich halt auf die zweite Gruppierungsklammer.
> Ich würde mich freuen, wenn ich morgen nacht wieder gut und
> zufrieden schlafen könnte;).
Hoffe ich doch.
Bernd
--
Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht
schon einmal gegeben hat. Ein Archiv der Liste findest Du auf:
http://lists.suse.com/archives/suse-linux
|Zufallssignatur 7
---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx
| < Previous | Next > |