Ich versuche, ein Zertifikat in C ++ zu analysieren und entschied, dass es eine gute Gelegenheit war, Regex zu lernen. Ich habe gerade vor einer Stunde etwas über Regex gelernt, entschuldige also meinen Mangel an Wissen.
Ich suche nach allen Organisationseinheiten, die mit einem Eintrag verknüpft sind.
Ich mache folgendes:
%Vor%Warum wird mir das nicht alle Ergebnisse (2) geben, die zu meiner Marke passen? Gibt es eine Möglichkeit, das zu bekommen?
Verwenden Sie stattdessen eine negierte Zeichenklasse. Ich habe das Gefühl, dass deine Charakterklassen sich nicht so verhalten, wie du denkst, sie sind ...
%Vor% [^,]*
passt alle Zeichen außer einem Komma an.
Versuchen Sie für die Übereinstimmungen, eine Schleife zu verwenden:
%Vor%Ich weiß nicht viel C ++, aber ich fand diese Dokumentationsseite , die meiner Meinung nach sein sollte ein bisschen nützlicher.
Der Code, den es hier hat, ist
%Vor% BEARBEITEN: Ich merke nur, dass Sie in den Parametern Kommata haben können, wie in O=
, die nicht mit [^,]
funktionieren. Stattdessen können Sie diese Regex verwenden:
Sie können ein Beispiel mit O=
hier sehen.
Es sieht so aus, als ob Sie nur versuchen, eine Zeichenfolge zu erhalten, die wie OU=XXXXXXXXXXXXXXXXX
aussieht, gefolgt von einem Komma oder einem Semikolon.
Diese Regex wird das tun:
%Vor% Was das bedeutet, ist die Zeichenkette OU=
, gefolgt von mindestens einem Zeichen, das nicht ist, ein Komma oder ein Semikolon:
Hier ist ein Codebeispiel, das diese Regex verwendet, um die Übereinstimmungen zu drucken (basierend auf dem Beispiel hier ) :
%Vor%