Подтвердить что ты не робот

Соответствие регулярного выражения и необязательные части строки

Я хотел бы сделать preg_match в строке uri с необязательными и необходимыми частями, но я не могу понять это.

Пример для соответствия:

/segment/(required)/segment(/optional)

Я хочу, чтобы обе строки ниже соответствовали указанным выше

/segment/required/segment/optional

и

/segment/reguired/segment

Я знаю, что политика заключается в том, чтобы не писать для меня, но я не могу понять это, поэтому подумал, что я хотя бы спрошу.

4b9b3361

Ответ 1

Значок вопроса делает предыдущий токен в регулярном выражении необязательным. Например: colou?r соответствует как colour, так и color.

Вы можете сделать несколько токенов необязательными, группируя их вместе с помощью круглых скобок и помещая знак вопроса после закрывающей скобки. Например: Nov(ember)? будет соответствовать Nov и November.

Вы можете написать регулярное выражение, которое соответствует многим альтернативам, включая более одного вопросительного знака. Feb(ruary)? 23(rd)? соответствует February 23rd, February 23, Feb 23rd и Feb 23.

Источник: http://www.regular-expressions.info/optional.html