Ich habe eine Zeichenfolge, die dieses Muster folgt:A RegEx Match Dieser
junk/FISH/junk/junk/NOTJUNK1-Z32/NOJUNK2/junk
Der junk
Text stellt unbekannten Text, den ich nicht interessiert bin an und will nicht abgestimmt.
FISH
und die alle vorwärts Schrägstriche repräsentieren bekannten Text, die ich nicht durch die RegEx übereinstimmen möchte.
NOTJUNK1
steht für einen unbekannten Text, den ich tun kümmern und wollen abgestimmt werden. Die -Z32
wird nach NOTJUNK1
auftreten, wie gezeigt. Ich weiß, dass es eine -Z
geben wird, aber ich kenne die zweistellige Zahl nicht, die folgt. Es könnte sogar eine Ziffer sein. Ich möchte den ein- oder zweistelligen Wert als eine Übereinstimmung zurückgegeben (aber ich möchte nicht -Z
).
Schließlich stellt NOTJUNK2
auch einige unbekannte Text, die ich tun kümmern und wollen zurückgegeben werden.
Ich verwende die RegEx in der .NET-Bibliothek.
So, am Beispiel Zeichenfolge oben, würde ich drei Spiele mögen, wenn möglich:
NOTJUNK1
32
NOTJUNK2
Der nächstgelegene ich kam, war dieser RegEx: (?<=FISH/.+/.+/).*?(?=-m[0-9]{1,2}/)?/
Es gibt zwei Spiele (die nahe , aber nicht das, was ich will):
NOTJUNK1-Z32/
NOJUNK2/
Was [ '/ FISH/[^ /] +/[^ /] +/([^ /] *?) -Z (\ d +)/([^ /] +) '] (http://regexstorm.net/tester?p=%2fFISH%2f%5b%5e%2f%5d%2b % 2f% 5b% 5e% 2f% 5d% 2b% 2f (% 5b% 5e% 2f% 5d *% 3f) -Z (% 5cd% 2b)% 2f (% 5b% 5e% 2f% 5d% 2b) & i = junk% 2fFISH% 2fjunk% 2fjunk% 2fNOTJUNK1-Z 32% 2fNOJUNK2% 2fjunk)? Die 3 erfassten Werte sind "NOTJUNK1", "32" und "NOJUNK2". –