2016-07-28 4 views
0

Ich möchte einen Regex-Ausdruck, der dem ersten 4-stelligen Teil eines Pfades und dann den nächsten beiden Teilen entspricht. So wäre es finden:Verwenden von Regex, um Teile eines Pfades zu finden, wo der erste Teil nur n Ziffern ist

/58A2/D456-509F-4905-A473/FCAD1612CEDB/ 

in diesen beiden Linien

pyramid:/58A2/D456-509F-4905-A473/FCAD1612CEDB/filename1.tif 
cache:/ThumbCache/58A2/D456-509F-4905-A473/FCAD1612CEDB/filename2.jpg 

Ich versuchte

/.{4}/.*?/.*?/ 

und das funktioniert für die erste ... aber nicht das zweite. Anscheinend stimmt der/ThumbCache/nicht überein, weil er nicht 4 Ziffern hat.

* UPDATE *

Ok ... also eigentlich das funktioniert, in diesem vereinfachten Beispiel ... in meinem eigentlichen Code hatte ich ein extra /.*?/

Es wird nicht Lass mich diesen Beitrag löschen, weil Leute Antworten gepostet haben. Nicht sicher, was zu tun ist. shareeditdeleteflag

+0

Welche Regex-Engine/Sprache verwenden Sie? – lintmouse

+0

Dies könnte Sie auf den richtigen Weg bringen, wenn Sie mit Capture-Gruppen arbeiten möchten: https://regex101.com/r/lG3sM5/1 – lintmouse

Antwort

0

Ok ... also eigentlich das funktioniert, in diesem vereinfachten Beispiel ... in meinem eigentlichen Code hatte ich ein extra /.*?/

Es wird mir diesen Posten nicht zulassen, löschen, weil die Menschen geschrieben Antworten. Nicht sicher, was zu tun ist.

0

this regex Versuchen:

\/[0-9A-Z]{4}\/(?:[0-9A-Z]{4}-?){4}\/[0-9A-Z]{12}\/ 

Regex Erklärung:

\/   # Slash literal 
[0-9A-Z]  # Match digit or uppercase letter 
{4}   # Match previous exactly 4 times (So 4 digits/uppercase letters) 
\/ 
(?:   # Start non-capturing group (Don't store the result of group) 
    [0-9A-Z] 
    {4} 
    -?  # Optionally a hyphen (Last sequence doesn't have one) 
)   # End non-capturing group 
{4} 
\/ 
[0-9A-Z] 
{12} 
\/ 

Sie müssen auch global oder g Flag global zu erfassen, wenn Sie Multi-Line-Eingang haben.

Für die Eingabe

pyramid:/58A2/D456-509F-4905-A473/FCAD1612CEDB/filename1.tif 
cache:/ThumbCache/58A2/D456-509F-4905-A473/FCAD1612CEDB/filename2.jpg 

wird diese

/58A2/D456-509F-4905-A473/FCAD1612CEDB/ 
/58A2/D456-509F-4905-A473/FCAD1612CEDB/ 

übereinstimmen ich keine einfangenden Gruppen hinzugefügt haben, wie Sie nichts angegeben haben, die separat erfasst werden muss. Sie erhalten die vollständige Übereinstimmungsausgabe.

Verwandte Themen