Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Regex获取jsessionid_Java_Regex - Fatal编程技术网

Java 使用Regex获取jsessionid

Java 使用Regex获取jsessionid,java,regex,Java,Regex,我必须从url获取JSSessionID代码,而不是JSSessionID字符串。是否可以匹配某个内容并将其排除 从注释中添加的代码: Pattern pattern = Pattern.compile("/jsessionid=([a-z0-9]+)/i"); Matcher matcher=pattern.matcher(connection.getURL().toExternalForm()); /=([A-Z0-9]+)/将获取等号后的所有大写字母和数字=,并将它们移到backr

我必须从url获取JSSessionID代码,而不是JSSessionID字符串。是否可以匹配某个内容并将其排除

从注释中添加的代码:

Pattern pattern = Pattern.compile("/jsessionid=([a-z0-9]+)/i"); 
Matcher matcher=pattern.matcher(connection.getURL().toExternalForm()); 
/=([A-Z0-9]+)/
将获取等号后的所有大写字母和数字
=
,并将它们移到backreference#1

试试这个:

    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));
    }

作为一个警告,如果在JSESSIONID的末尾有一个路由标识符,那么前面的这些正则表达式可能会失败。我发现这也将获得路由表达式()


你试过什么?另外,您使用什么语言读取url,因为您可能不需要RegExp
/jsessionid=([a-z0-9]+)/i
就可以解析url并获取参数。谢谢您的回复。我正在用Java开发它。对不起,我弄错了。我试过这样做:Pattern=Pattern.compile(“/jsessionid=([a-z0-9]+)/I”);Matcher Matcher=pattern.Matcher(connection.getURL().toExternalForm());因为它是十六进制的,所以这里不需要
[a-z]
,所以
[a-f0-9]
对于验证来说是足够和最佳的。我已经尝试了上面的代码,但是matcher.find()和matcher.matches()返回false。感谢您的回复@unata,但它似乎不起作用。我在regexpal.com上测试了您的正则表达式,但它没有捕获代码。我使用Java和Pattern/Matcher进行开发,但即使使用=([A-Z0-9]+),Matcher也不匹配任何东西。@user2032199:如果使用
find()
而不是
matches()
$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 = "";
}
    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));
    }
^([A-F0-9]+)((\.[A-Za-z0-9]+)*)$