2016-05-11 26 views
0

Wie extrahieren wir die JSESSIONID (alles nach '=' und vor ';' von dieser ResponseExtract Session-ID von Response-Header

Set-Cookie:Apache=40.76.87.14.1462996905538733; path=/; domain=.cra-arc.gc.ca,JSESSIONID=KjahaS5VdMBttn9bAYuS_iHFXOgmqQyMxHcht1kBS7p1YOpdV2V_!1094217526; path=/; HttpOnly 

Antwort

3

können Sie verwenden:

/JSESSIONID=(.*?);/ 

Regex101 Demo:

https://regex101.com/r/nH4mT0/1


Regex Erläuterung:

JSESSIONID=(.*?); 

Match the character string “JSESSIONID=” literally (case sensitive) «JSESSIONID=» 
Match the regex below and capture its match into backreference number 1 «(.*?)» 
    Match any single character that is NOT a line break character (line feed, carriage return, line separator, paragraph separator) «.*?» 
     Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?» 
Match the character “;” literally «;» 
+1

Oh das ist auch nett! Vielen Dank! – ykadaru

1

Sie dieses Muster verwenden können:

/JSESSIONID=([^;]*)/ 

? Erläuterung der oben regex:

JSESSIONID=   # match the text literally 
(     # asserts that all content inside it will be in group $1 
    [^;]     # means any character not ';' 
    *      # as many as possible 
)      # end of the group $1 

Ihre gewünschte Wert wird innerhalb Gruppe 1.

sein

Sie können es in action here sehen.

+0

danke! Ich denke, ich kann die Zeichenkette einfach auf das '=' mit JS aufteilen, da sie immer noch die gesamte Gruppe von JSESSIONID bis kurz vor das Semikolon einfängt. – ykadaru

+0

Ja, das kannst du;) ... Wie du schon sagtest ist es JS, meine Antwort wäre: 'var result = string.match (/ JSESSIONID = ([^;] *) /) [1];' –