我有一个我期望的 URL:
www.somewebsite.com/misc-session/;session-id=1FSDSF2132FSADASD13213
我想解析
session-id=1FSDSF2132FSADASD13213
在 Java 中使用正则表达式,最好的方法是什么?
使用测试正则表达式网站,我尝试了一些不同的方法,但我想知道什么是最安全的最佳方法,并且在 URL 实际形成时受到保护,如下所示:
www.somewebsite.com/misc-session/;session-id=1FSDSF2132FSADASD13213?someExtraParam=false
或
www.somewebsite.com/misc-session/extra-path/;session-id=1FSDSF2132FSADASD13213?someExtraParam=false
我一直只是在寻找“session-id”的值。
编辑: session-id 的值不限于数字,并且保证包含两者的组合。
最佳答案
What is the best approach that is the most fail safe, and protected.
嗯,我认为在两侧匹配单词边界
就足够了。
正则表达式: \bsession-id=\d+\b
注意:- 如果您使用的正则表达式风格需要双重转义,请使用 \\d
和 \\b
。
<强> Regex101 Demo
<小时/>以防万一 session-id
的字符在 [A-Za-z0-9]
范围内,请使用此正则表达式。
正则表达式: \bsession-id=[A-Za-z0-9]+\b
<强> Regex101 Demo
<强> Ideone Demo
记得包含
import java.util.regex.Matcher;
import java.util.regex.Pattern;
关于Java正则表达式从URL解析特定分号分隔的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36185276/