2017-02-06 1 views
0

쿠키에서 값을 추출하려고합니다. 쿠키는 [이름] = [값] 쌍을 ';'로 구분하여 구성됩니다. 난과 같이 쿠키 문자열이있는 경우 그래서이 예에서변수에서 값을 가져 오는 Regex

username=user;password=pass;session="4341234556"; 

, 난 단지 따옴표없이 값 '4341234556'을 원한다.

세션 변수의 값은 물론 요청마다 달라집니다. 정규식 (따옴표 제외)을 사용하여 세션의 가치를 얻으려면 어떻게해야합니까? 변수의 순서가 리턴 될 때마다 동일하게 보장되지는 않습니다.

또한 값에 포함되지 않은 공백 문자를 무시하고 싶습니다.

: 일반 "소모"패턴
+2

어떤 프로그래밍 언어인가요? 지금까지 뭐 해봤 어? –

+0

모든 키 값 쌍이 존재한다는 보장이 있습니까? 그것들은 모두 한 줄에 있습니까? 항상 큰 따옴표로 묶으려는 값입니까, 아니면 작은 따옴표로 묶을 수 있습니까? –

+0

@GeorgeTs 존재할 수있는 유일한 K = V 쌍은 'session = "stuff"'입니다. 예, 모두 한 줄로 수신되지만 보장되지는 않습니다. – moonlightcheese

답변

2

는 lookbehind와

session="([^"]+)" //sessionid is in $1

demo

(전체 경기가 세션 id, 필요없이 일치하는 그룹이다) (일치하는 그룹 액세스가 필요합니다)

(?<=session=")[^"]+

demo

+1

이 작업은 훌륭했습니다 (두 번째 해결 방법). 그러나 따옴표가 존재하지 않아도 같은 값을 반환하도록 작성하는 방법이 있습니까? [편집 : 신경 끄시 고, 나는 그 중 하나를 알아 냈다. 고마워요!] – moonlightcheese

+1

숫자 만 쓰면, 따옴표를 붙이지 않고 [^ "] + to \ d + –

+1

"(? <= session =) "? ([^"] +) "(따옴표 제외)로 바꿀 수 있습니다. –

관련 문제