У меня есть строка, которая следует схеме:регулярное выражение, чтобы соответствовать этому
junk/FISH/junk/junk/NOTJUNK1-Z32/NOJUNK2/junk
junk
текст представляет неизвестный текст, что я не заинтересован и не хотите сопрягать.
FISH
и все косые черты представляют известный текст, который я не хочу, чтобы соответствовать RegEx.
NOTJUNK1
представляет собой неизвестный текст, который я сделать заботиться о и хочет. -Z32
будет происходить после NOTJUNK1
, как показано. Я знаю, что будет -Z
, но я не знаю два следующих цифры. Это может быть даже одна цифра. Я хочу, чтобы одно или двухзначное значение возвращалось как совпадение (но я не хочу -Z
).
И, наконец, NOTJUNK2
также представляет собой неизвестный текст, который я do заботиться и хочет возвращен.
Я использую RegEx в библиотеке .NET.
Таким образом, используя пример строки выше, я хотел бы три матча, если это возможно:
NOTJUNK1
32
NOTJUNK2
Ближайший я пришел был этот RegEx: (?<=FISH/.+/.+/).*?(?=-m[0-9]{1,2}/)?/
возвращает два матча (что близко , но не то, что я хочу):
NOTJUNK1-Z32/
NOJUNK2/
насчет [ '/ 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) и я = нежелательной% 2fFISH% 2fjunk% 2fjunk% 2fNOTJUNK1-Z, 32% 2fNOJUNK2% 2fjunk)? 3 зафиксированных значения: 'NOTJUNK1',' 32' и 'NOJUNK2'. –