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

标签 java regex string parsing url

我有一个我期望的 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/

相关文章:

java - 如何仅对 XML 文件的一部分进行签名 - Java XMLSignature

java - 字符串中的多个正则表达式匹配

php - 如何将双/多个字母替换为单个字母?

java - 在 java 中将字符串转换为 oracle.sql.clob?

iOS - 字符串后跟数字时的大写

php - 使用 php 将字符串转换为数组

java - 我的 jsp 代码中没有定义 jquery

javascript - "Invalid regular expression: unterminated group"尝试设置 restify 静态路由时

Javascript - 根据数组替换字符串

java - N 的尾随零的数量