Schuer: Knifflige RegEx

Beitrag lesen

Hallo,

du sagst das so einfach und meinst das wohl nicht wirklich ernst. aber es gibt tatsaechlich leute, die mit sowas auf t-shirts rumlaufen... vor kurzem habe ich gerade wieder gesehen: /(b{2}|[^b]{2})/

ist das die Perl-Version der Business-to-Business (B2B) Strategie?

ich versuche dir nun mal _ansatzweise_ dabei zu helfen:

ok, ich höre zu...

s/u/v/g heisst soviel wie: ersetze u durch v, sooft du es findest. (dabei steht das s fuer suchen und ersetzen, das g fuer die globale ersetzung)

das ist ja noch vnheimlich einfach, behavpte ich

spezifizieren wir nun u,

Es ist ein u!

(..)
[sehr viel gelesen und versucht zu verstehen]
(..)

so kommen wir nun zu v, also $1#$x#$2

Ja, lass' uns v spezifizieren!

zusammengesetzt heisst
s/(^|[^<])$x($|[^>])/$1#$x#$2/g;
somit in etwa:
suche den inhalt von $x, wobei das zeichen vor $x (falls eines existiert) kein < sein darf und das zeichen danach (falls eines existiert) kein > sein darf. speichere dabei das zeichen vor $x in $1 und das zeichen nach $x in $2. ersetze den kompletten gefunden ausdruck (also $1$x$2) durch $1#$x#$2.
diesen vorgang fuehre sooft durch, wie du $x findest.

hey, das hat CK dann mit Perl aber ziemlich geil komprimiert, wenn ich mal den Einzeiler mit deiner Zusammenfassung vergleiche. Wobei das Ergebnis mit Winzip sicherlich sehr ähnlich ausgesehen hätte :-)

oh, mann! perl ist doch saugeil, oder?

Ja, ich kann vor Begeisterung kaum meinen Stuhl halten! :-) Aber danke, dass du dir die Mühe gemacht hast, es mir zu erklären.

Gruß,
_Dirk