2017-01-04 4 views
-8

Попытка выяснить регулярное выражение для заголовка.Я хочу совместить все строки без 3 вхождений/или окончательного одиночного символа в RegEx

т.е.

  1. Foo
  2. Foo/бар/Foo
  3. Foo/бар/Foo/бар
  4. Foo/бар/d

Я не хочу чтобы соответствовать 3-му или 4-м, но соответствуют первым двум. Во втором варианте окончательное foo может быть любым, кроме одного d.

+0

Есть ли причина, по которой вы используете regex для этого? Я чувствую, что было бы проще, без –

+0

Он должен использоваться в веб-конфиге, чтобы соответствовать переменным URL-адресам и перенаправлять. –

+0

Что такое веб-конфиг? –

ответ

0

Вы можете использовать регулярное выражение, но это будет сложнее, чем просто подсчет числа косых черт, а также проверка последнего символа не является d. Если вы хотите использовать регулярное выражение для проверки того, что последняя часть не является «/ d», вы можете сделать что-то вроде проверки того, что она не соответствует ^. */D $, но может быть проще использовать код. (Если подсчет косой черты и контрольная строка не заканчивается на «/ d», это не совсем то, что вы имеете в виду, тогда это поможет иметь больше примеров).

0

Вычислено. См. Ниже, если кто-то заинтересован.

(^foo/?$)|(^foo/[^/]+/(([^d][^/]*)|(d[^/]+))/?$) 
+0

Насколько вы уверены, что это точно верно? Насколько это дружелюбно для кого-то, кто поддерживает этот код? –

Смежные вопросы