Регулярное выражение для получения значения строки запроса без использования lookbehind - PullRequest
0 голосов
/ 13 января 2011

Я хочу извлечь "en" из следующего URL, чтобы его можно было переписать.

contact / default.aspx? Lang = ru

/ contact / default.aspx? Lang = en-us & id = 1

/ contact / default.aspx? id = 1111 & lang = en

Приведенные выше примеры следует переписать так:

/ contact / en / default.aspx

К сожалениюIIS7 не поддерживает lookbehinds, поэтому этот фрагмент регулярного выражения не может быть использован:

(?<=lang\=)(.+)

Есть идеи, как сопоставить часть значения в строке запроса?

Спасибо

1 Ответ

1 голос
/ 13 января 2011

Я бы сделал

.*?(&|\?)lang=([^&]+).*

и использовал бы группу захвата 1

...