2014-11-13 2 views
0

Мне нужно вырезать идентификатор JSESSION из значений cookie. В основном то, что я хочу в тексте как:Справка RegEx: get jsessionid через регулярное выражение

foo bar JSESSIONID_TH=ABCDEF; bar foo 

Я хочу, чтобы получить ABCDEF через регулярное выражение.

Я проверил Match Sequence using RegEx After a Specified Character и Using Regex to get jsessionid и в настоящее время это регулярное выражение:

(?<=JSESSIONID)[^;]+ 

Я думал о дать мне все, что между JSESSION и следующее «;» как начало. Однако это регулярное выражение не работает. Кроме того, также может быть JSESSIONID_FC, так что для него либо он должен дать мне значение после знака равенства. Я ценю любую помощь и идею.

С наилучшими пожеланиями,

Dennis

+0

Какой язык Вы работаете? –

+0

Привет, внутренняя реализация Java RegEx –

+0

Нельзя использовать стандартный ['request.getCookies()'] (https://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequest.html #getCookies()) метод? – sp00m

ответ

0

Используйте ниже регулярное выражение (который использует захват группы) и получить значение индекса JSESSIONID из группы 1.

JSESSIONID[^;=]*=([^;]+) 
+0

Большое спасибо, что сработало отлично! :) спас мой день! –

+0

Добро пожаловать ... –

0

\s*JSESSIONID.*?=([^;]+)

Для <optional space>JESESSION<anything until first =><capture><until ;>

+0

Привет, большое спасибо. Это работает, но только если перед JSESSIONID есть пробел, что не всегда так. любая идея, как противостоять этому? Благодаря! –

+0

Отредактировано, не знаю, почему \ b терпит неудачу. Другие впоследствии удалили \ b, что приведет к тому, что ANYTHINGJSESSION будет соответствовать. –

+0

Спасибо, Алекс за вашу помощь и ваше время –

Смежные вопросы