Правильное регулярное выражение для получения значения в URL

#c# #regex

#c# #регулярное выражение

Вопрос:

Я пытаюсь получить значение «настроить» из следующего https://example.com/estimate/unit/configure/76yc1d2b-31aa-4b5a-95af-8b0f93b01b00?sid=e9a9a541-9417-43c4-a4e9-746ttdd84e9o

С этим регулярным выражением (?<=единица измерения/)(.*)(?=?) но я получил «configure/76yc1d2b-31aa-4b5a-95af-8b0f93b01b00», я бы хотел получить просто «configure»

Кто-нибудь может объяснить мне ошибку, спасибо

Ответ №1:

 (?<=unit/)(.*)(?=/)
  

Решает вашу проблему. Хитрость заключалась в том, чтобы искать «закрывающую» косую черту, в то время как в yoursolution вы искали символ ‘?’

Комментарии:

1. Спасибо, чувак, это было именно то, что мне нужно, и работает идеально

Ответ №2:

Регулярное выражение соответствует всему от начала вашего URL до конца. Если вы замените .* на [^ /] * (сопоставьте все, кроме косой черты), а затем удалите конечную группу, вы должны получить то, что хотите.