Regex для соответствия строки, которая не начинается или не заканчивается шаблоном - PullRequest
0 голосов
/ 16 сентября 2018

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

^[^/].*[^/]$ - это то, с чем я пытался.Это терпит неудачу, если строка имеет только один символ.Как мне исправить это?

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Существует гораздо более простой и легкий способ решить эту проблему, чем использование RegEx.Поэтому, если вы хотите, вы можете просто сделать:

char first = str.charAt(0); 
char last = str.charAt(str.length() - 1);
if(first != '/' && last != '/') {
  // str is valid.
}

Где str - проверяемая строка.

0 голосов
/ 16 сентября 2018

Разделить шаблон на 2 части:

  1. Первая часть - не начинается с '/'
  2. Необязательная вторая часть - не заканчивается на '/'.

Вы можете получить что-то вроде следующего:

^[^/](.*[^/])?$
0 голосов
/ 16 сентября 2018

Соответствует первому символу, затем имеет необязательную группу, которая соответствует 0+ символам, за которыми следует символ без косой черты, за которым следует конец строки:

^[^/](?:.*[^/])?$

https://regex101.com/r/Mp674r/2

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