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

Регулярное выражение должно соответствовать

  • /exampleline - совпадение exampleline
  • exampleline - совпадение exampleline
  • exampleline/ - совпадение exampleline
  • /exampleline/ - совпадение exampleline

Я попробовал ?/(.+)/? но не получилось
/exampleline/ и exampleline/ соответствуют exampleline/ вместо exampleline

🤔 А знаете ли вы, что...
Python поддерживает динамическую типизацию, что облегчает разработку.


2
52
3

Ответы:

Решено

Вы можете использовать отрицательный взгляд, чтобы утверждать, что совпадение не начинается и не заканчивается /:

(?!/).+(?<!/)

Демо: https://regex101.com/r/EKOVzG/2


Необходимо убрать из группы символ «/». Попробуйте это:

/?([^/]+)/?

Попробуйте использовать это

^/?(exampleline)/?$

Интересные вопросы для изучения

Существует ли передовая практика определения необязательных полей в моделях Pydantic?Метод класса, реализованный в родительском классе, возвращающий имя дочернего классаПриложение Flask не развертывается через Azure DevOpsКак включить общесистемные пакеты в PyInstaller?Как найти имя, условия которого заканчиваются несколькими строками, и разделить ихРегулярное выражение для строки буквенно-цифровых кодов (МКБ-10) независимо от того, есть ли у нее точка в середине или нетSQL, чтобы определить, является ли строка числовыми символами, за которыми следуют буквенные символыКак изменить нижний регистр на верхний регистр при нескольких вариантах выбора в режиме регулярного выраженияString#gsub, как использовать совпадение в атрибуте replace, а также вставлять линию разрываBash-скрипт для сокращения имени файла до длины не более n, но без обрезки целых слов