Java正则表达式从URL解析特定分号分隔的参数?

Ada*_*fin 0 java regex string url parsing

我有一个我期待的URL:

www.somewebsite.com/misc-session/;session-id=1FSDSF2132FSADASD13213
Run Code Online (Sandbox Code Playgroud)

我想解析一下

session-id=1FSDSF2132FSADASD13213
Run Code Online (Sandbox Code Playgroud)

在Java中使用常规表达式,最好的方法是什么?

使用测试正则表达式网站我已经尝试了一些不同的方法,但我想知道什么是最安全的最好的方法,并且受保护的URL实际上形成如下:

www.somewebsite.com/misc-session/;session-id=1FSDSF2132FSADASD13213?someExtraParam=false
Run Code Online (Sandbox Code Playgroud)

要么

www.somewebsite.com/misc-session/extra-path/;session-id=1FSDSF2132FSADASD13213?someExtraParam=false
Run Code Online (Sandbox Code Playgroud)

我总是只是在寻找"session-id"的价值.

编辑:session-id的值不限于数字,并保证包含两者的组合.

小智 5

什么是最安全和受保护的最佳方法.

我认为word boundary双方的匹配就足够了.

正则表达式: \bsession-id=\d+\b

注意: -使用\\d\\b如果正在使用的正则表达式味道需要双重转义.

Regex101演示


以防万一session-id在范围内的字符[A-Za-z0-9]使用此正则表达式.

正则表达式: \bsession-id=[A-Za-z0-9]+\b

Regex101演示

Ideone演示

记得包括

import java.util.regex.Matcher;
import java.util.regex.Pattern;
Run Code Online (Sandbox Code Playgroud)