Регулярное выражение соответствует обязательным и необязательным частям строки
Я хотел бы сделать preg_match для строки uri с необязательными и обязательными частями, но я не могу этого понять.
Пример для сопоставления:
/segment/(required)/segment(/optional)
Я хочу, чтобы обе строки ниже соответствовали приведенным выше
/segment/required/segment/optional
И
/segment/reguired/segment
Я знаю, что политика заключается в том, чтобы не писать для меня, но я не могу понять этого, поэтому подумал, что, по крайней мере, спрошу.
1 answers
Знак вопроса делает предыдущий маркер в регулярном выражении необязательным. Например: colou?r
соответствует как colour
, так и color
.
Вы можете сделать несколько токенов необязательными, сгруппировав их вместе с помощью круглых скобок и поместив знак вопроса после закрывающей скобки. Например: Nov(ember)?
будет соответствовать Nov
и November
.
Вы можете написать регулярное выражение, которое соответствует многим альтернативам, включив более одного вопросительного знака. Feb(ruary)?
23(rd)?
совпадения February 23rd
, February 23
, Feb 23rd
и Feb 23
.