Reg Ex для отрицательного взгляда или отрицательного утверждения для нужного подчеркивания - PullRequest
0 голосов
/ 22 января 2019

У меня есть шаблоны URL, которые всегда начинаются с одного из 3 слов за URL верхнего уровня:

word1
word2
word3

Тогда может быть что угодно в нескольких подкаталогах (до 4 уровней в глубину), но ВСЕГДА: lowercaseword или lowercaseword-lowercaseword

Теперь я ищу reg ex, который бы точно соответствовал этому, но не подкаталогу, начинающемуся с подчеркивания: _lowercaseword

Итак, мои URL:

example.com/word1/lowercaseword/lowercaseword/?parameters
example.com/word2/lowercaseword/
example.com/word3/lowercaseword/lowercaseword/lowercaseword/
example.com/word2/lowercaseword/lowercaseword/_lowercaseword/

и я ищу регистр ex, который соответствует первым трем .

Я не могу понять отрицательный взгляд (если это то, что нужно). Есть идеи?

Это мои выражения, но они не работают:

\/(word1|word2|word3)\/((?!\_)[a-z]+(\-[a-z]+)?\/){0,4}
\/(word1|word2|word3)\/([!\_a-z]+(\-[a-z]+)?\/){0,4}

1 Ответ

0 голосов
/ 23 января 2019

Вы можете использовать

^[^/]+/(word1|word2|word3)(?:/[a-z]+(?:-[a-z]+)?){0,4}/?(?:\?.*)?$

См. Демоверсию regex .

Детали

  • ^ - начало строки
  • [^/]+ - 1+ символов кроме /
  • / - косая черта
  • (word1|word2|word3) - любое из слов
  • (?:/[a-z]+(?:-[a-z]+)?){0,4} - от нуля до четырех повторений /, 1+ строчные буквы ASCII буквы, а затем необязательная последовательность - и 1+ строчных букв ASCII
  • /? - опционально /
  • (?:\?.*)? - необязательная последовательность ?, а затем любые 0+ символов до ...
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...