![]() |
frage zu regular expressions
Code:
"/\/app\/(.*?)(\/.*|)$/" 1.) warum wird der ausdruck (.*?) in eine klammer geschrieben? normalerweise bedeutet das ja, daß das ergebnis in einem zwischenspeicher landet, auf den man danach wieder zugreifen kann. in meinem fall findet ein solcher zugriff allerdings nicht statt, wozu also das hier? 2.) der ausdruck (.*?) sucht ja nach 0 bis n beliebigen Zeichen und zwar nicht greedy. welchen sinn hat dann aber das fragezeichen, wenn die suchergebnisse sowieso aus 0 bis n beliebigen zeichen bestehen? bricht die suche da nicht schon nach dem 1. zeichen ab? wenn ja, wäre ein (.{0,1}) da nicht besser? 3.) eine pipe kenne ich als OR, nur was bedeutet die pipe in (\/.*|)? vielen dank im voraus. |
Meine Ideen (k.A. ob sie stimmen):
ad 1.) Ich schätz da gehts nur darum es zu gruppieren (das ist der eigentliche Zweck der (), das der Inhalt für später gespeichert wird ist "nur" ein goodie). ad 2.) Ich glaube .* ist schon greedy, das Fragezeichen dient IMHO dazu das am Ende etwas übrig bleibt ("abcdefg" sollte auf /a(.*?)g/ aber nicht auf /a(.*)g/ matchen - da das .* bcdefg matcht und nichts "übrig" lässt). ad 3.) k.A. ich kann keinen Unterschied zu (\/.*) erkennen. Wie gesagt das ist nur das was ich mir denke, muß nicht stimmen. |
ich bin wirklich kein regex profi und vermute zu 3. nur:
vielleicht muss entweder .* folgen oder es folgt nichts mehr mfg Thomas |
Das denke ich auch, aber:
.* matcht sowieso 0 bis n, daher ist das "|nichts" überflüssig. jak |
Re: frage zu regular expressions
Zitat:
|
Zitat:
|
Ich bin auch nur Laie was Regexp betrifft, mein Beispiel war schlecht gewählt. Ein besseres findest du hier:
http://de.wikipedia.org/w/index.php?...iges_Verhalten Zitat:
|
@jak: danke, aber das war mir eh klar, beschreibt ja nicht mehr als eine "nicht greedy"-suche. ;)
ich denke ich hab jetzt auch verstanden, was damit in dem ursprünglichen regExp-ausdruck gemeint war. statt "A" im beispiel habe ich halt hier "/app/", ansonsten verhält sich das ganze genauso und ich war nur durch die (wie mir nun klar ist eigentlich unnötige) klammernsetzung etwas verwirrt. richtig? |
Ja, seh' ich genauso.
jak |
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag