Регулярное выражение для исключения 8 di git число - PullRequest
0 голосов
/ 09 марта 2020

У меня есть следующая схема URL:

/test/how-are-you.html
/test/hello-how-are-you.html
/test/im-fine.html
/test/im-fine/how-are-you/
/test/im-fine/hello-how-are-you/
/test/happy-1-day.html
/test/thanks-123.html
/test/thanks-1234.html
/test/thanks-12345.html
/test/hoe-are-you-10012396.html (always 8 numbers)
/test/im-fine-10012396.html (always 8 numbers)
/test/hello-52345786.html (always 8 numbers)

Можете ли вы дать мне регулярное выражение, чтобы исключить последние 3 примера, включая остальные? Я попробовал что-то вроде

^\/test\/?[\w\-]*\/?[\w\-]*([^0-9]{8})\/?

и потерпел неудачу;)

Best, Daniel

1 Ответ

0 голосов
/ 09 марта 2020

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

^\/test\/(?!.*\d{8}\.html$).*$

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

Подробности

  • ^ - начало строки
  • \/test\/ - /test/ строка
  • (?!.*\d{8}\.html$) - если есть любые 0+ символов, кроме символов разрыва строки, как можно больше, затем 8 цифр и .html в конце строки, не совпадать
  • .*$ - любые 0+ символов, кроме символов разрыва строки, как можно больше.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...