Это мой шаблон регулярного выражения:Как найти дополнительную группу с некоторым префиксом с помощью Regex
"subcategory.html?.*id=(.*?)&.*title=(.+)?"
для ниже входного
http://example.com/xyz/subcategory.html?id=3000080292&backTitle=Back&title=BabySale
Я хочу capturebelow группу
- группы один (идентификатор): 3000080292
- группа 2 (название): BabySale
Для этого он отлично работает. Проблема в том, что я хочу сделать вторую группу, т. Е. Значение заголовка, необязательным, так что даже если название отсутствует, регулярное выражение должно совпадать и получить значение группы 1 (id). Но для ввода
http://example.com/xyz/subcategory.html?id=3000080292&backTitle=Back&
Повторное совпадение не срабатывает, даже если присутствует группа 1. Итак, мой вопрос заключается в том, как сделать вторую группу необязательной здесь?
Прошу прощения, но если ваш прецедент извлекается для разбора URL-адресов, ma ybe вы должны увидеть http://stackoverflow.com/questions/13592236/parse-a-uri-string-into-name-value-collection или даже использовать одну из многих библиотек, выполняющих то же самое. Regex имеет тенденцию быть уязвимым при выполнении такого рода вещей. –