Как отказаться от двойных слешей с помощью регулярного выражения - PullRequest
0 голосов
/ 11 февраля 2019

Я хотел бы создать регулярное выражение, которое:

  • разрешает столько буквенно-цифровых символов, сколько нужно
  • разрешает / между символами
  • mustконец с /
  • отклоняет любой другой символ, такой как * и т. д.
  • не допускает двоих / позади друг друга (например, a//b/)

Я построил следующее регулярное выражение: ^[a-zA-Z0-9\/]+\/$.

Соответствия регулярному выражению: a/b/c/ или 1/2/c/ Я бы не хотел совпадать со строкой типа 1//a/

возможно ли это?

1 Ответ

0 голосов
/ 11 февраля 2019

Регулярное выражение, которое вы можете использовать:

^[a-zA-Z0-9]+(?:\/[a-zA-Z0-9]+)*\/$

См. Демонстрационное регулярное выражение .

Подробности

  • ^ - начало строки
  • [a-zA-Z0-9]+ - 1 или более буквенно-цифровых символов
  • (?:\/[a-zA-Z0-9]+)* - группа без захвата, которая соответствует 0 или более повторениям следующих шаблонов:
    • \/ - / символ
    • [a-zA-Z0-9]+ - 1 или более буквенно-цифровых символов
  • \/ - / символ
  • $ - конец строки.

Обратите внимание, что / не следует экранировать, если / не используются в качестве разделителей регулярных выражений или если разделители регулярных выражений не используются(в строковых литералах, записи конструктора и т. д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...