Hilfe zu Regex (git svn ignore paths)
Hallo Listeners, Irgendwie stehe ich auf dem Schlauch mit dieser regex (aus der man page von git-svn): --ignore-paths="^[^/]+/(?:branches|tags)" Ich frage mich, obwohl ich eigentlich dachte ich kenne mich mit Regex aus, was der Mittelteil, ahem, der Teil mit dem "?:" nach der runden Klammer auf soll. Die Regex soll alle first level Subdirectories mit den Namen "tags" oder "branches" treffen. Ich dachte immer ein '?' macht nur hinter einem Regex Atom Sinn und bedeutet dasselbe wie {0,1}, also null oder ein mal. Und was bedeutet der Doppelpunkt? Nirgendwo in regex(7) finde ich was ueber ':' ausser bei Charakterklassen. Roman -- Roman Fietze Telemotive AG Buero Muehlhausen Breitwiesen 73347 Muehlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Wed, 10 Aug 2011, Roman Fietze schrieb:
Irgendwie stehe ich auf dem Schlauch mit dieser regex (aus der man page von git-svn):
--ignore-paths="^[^/]+/(?:branches|tags)" [..] Und was bedeutet der Doppelpunkt? Nirgendwo in regex(7) finde ich was ueber ':' ausser bei Charakterklassen.
Ich geh mal davon aus, daß git-svn die libpcre verwendet und kein perl-Programm ist[0]. man pcrepattern If an opening parenthesis is followed by a question mark and a colon, the subpattern does not do any captur- ing, and is not counted when computing the number of any subsequent capturing subpatterns. For example, if the string "the white queen" is matched against the pattern the ((?:red|white) (king|queen)) the captured substrings are "white queen" and "queen", and are numbered 1 and 2. D.h. (?:) wirkt wie (), aber ohne daß was gespeichert wird, was die Regex effizienter macht. Weitere Lektüre: man perlre man perlrequick man perlrebackslash man perlrecharclass man perlreref man perlretut -dnh [0] das macht in der Praxis quasi keinen Unterschied, aber es gibt welche, libpcre ist nicht unbedingt immer auf dem Stand von perl. -- Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us. -- Calvin & Hobbes, 8.11.1989 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo David, On Wednesday, 10.August.2011 15:46:38 David Haller wrote:
man pcrepattern
Danke, das war's. Jetzt blicke ich auch was die dort machen.
D.h. (?:) wirkt wie (), aber ohne daß was gespeichert wird, was die Regex effizienter macht.
Der Match wird einmal pro Path im Repos ausgefuehrt. Mal testen, um wieviel effizienter die Regex dadurch wird. Mal sehen ob ich die Zeit die mich mein Unwissen gekostet hat dadurch jemals wieder hereinholen kann. ;) Danke nochmal Roman -- Roman Fietze Telemotive AG Buero Muehlhausen Breitwiesen 73347 Muehlhausen Tel.: +49(0)7335/18493-45 http://www.telemotive.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
David Haller
-
Roman Fietze