Match-Sequenz mit RegEx nach einem angegebenen Zeichen

8

Die anfängliche Zeichenfolge lautet [image: lachs-v5-09-14-2011.jpg]

Ich möchte den Text "lachs-v5-09-14-2011.jpg" erfassen und verwende GSkinners RegEx-Tool / p>

Am ehesten erreiche ich die gewünschte Ausgabe mit diesem RegEx:

%Vor%

Das Problem ist, dass diese Sequenz den Doppelpunkt enthält und die Ausgabe

wird %Vor%

Wie kann ich die gewünschte Ausgabe ohne den Doppelpunkt erfassen? Danke für die Hilfe!

    
ninu 26.05.2012, 18:54
quelle

3 Antworten

19

Verwenden Sie einen Look-Behind:

%Vor%

Ein Look-Behind (codiert als (?<=someregex) ) ist eine Null-Breiten-Übereinstimmung, also wird die Übereinstimmung behauptet, aber nicht erfasst.

Auch Ihre Regex kann dazu vereinfacht werden:

%Vor%

was einfach alles zwischen (aber nicht) a : und a ]

packt     
Bohemian 26.05.2012, 19:08
quelle
4

Wenn Sie immer Strings in diesem Format betrachten, würde ich dieses Muster verwenden:

%Vor%

Dies sieht nach [image: und danach bis zum schließenden ]

aus     
agent-j 26.05.2012 19:09
quelle
1

Sie haben die richtige Regex, nur das Tool, das Sie verwenden, markiert das gesamte Match und nicht nur Ihre Capture-Gruppe. Bewegen Sie den Mauszeiger über das Spiel und sehen Sie, was "Gruppe 1" eigentlich ist.

Wenn Sie einen etwas robusteren Regex möchten, können Sie :([^\]]+) ausprobieren, wodurch andere Zeichen als ] im Dateinamen angezeigt werden.

    
Andrew White 26.05.2012 18:57
quelle

Tags und Links