0

jsessionid 文字列ではなく、URL から jsessionid コードを取得する必要があります。何かを一致させて除外することは可能ですか?

https://esgf-data.dkrz.de/esgf-idp/idp/login.htm;jsessionid=436100313FAFBBB9B4DC8BA3C2EC267B

Result = 436100313FAFBBB9B4DC8BA3C2EC267B

コメントから追加されたコード:

Pattern pattern = Pattern.compile("/jsessionid=([a-z0-9]+)/i"); 
Matcher matcher=pattern.matcher(connection.getURL().toExternalForm()); 
4

3 に答える 3

0

これを試してください:

    String data = "https://esgf-data.dkrz.de/esgf-idp/idp/login.htm;jsessionid=436100313FAFBBB9B4DC8BA3C2EC267B";
    Pattern pattern = Pattern.compile("jsessionid=(\\w+)");
    Matcher matcher = pattern.matcher(data);

    while (matcher.find()) {
        System.out.println("Result is : " + matcher.group(1));
    }
于 2013-03-20T16:41:49.003 に答える
0

/=([A-Z0-9]+)/等号の後のすべての大文字と数字を取得=し、後方参照 #1 に移動します

$subject = 'https://esgf-data.dkrz.de/esgf-idp/idp/login.htm;jsessionid=436100313FAFBBB9B4DC8BA3C2EC267B';
if (preg_match('/=([A-Z0-9]+)/', $subject, $regs)) {
    $result = $regs[1];
} else {
    $result = "";
}
于 2013-03-20T10:01:27.040 に答える
0

注意点として、JSESSIONID の末尾にルーティング識別子1 2がある場合、これらの以前の正規表現は失敗する可能性があります。これにより、ルーティング式も取得されることがわかりました(Regex101)。

^([A-F0-9]+)((\.[A-Za-z0-9]+)*)$
于 2014-08-26T01:25:31.110 に答える