java - 使用正则表达式匹配查询字符串中的重复模式

标签 java regex url

我有一系列 URL 参数,我需要提取其中一些重复的参数。例如:

必需参数“m”

我有一个字符串如何:

m=123456789&reset=true&color=blue&getppm=1112&comparechars=yes&alternatem=5&.....

这会使用不同的值重复大约 10 次。

我有这个正则表达式:

m=(.*?)&

但我的问题是其他参数也在输入(getppmalternatem)。

在某些情况下,

m 是第一个。在某些情况下它可能会有所不同,在这种情况下我不能使用 &m=

如何解决这个问题?

编辑: 对于这种类型,m 参数通常由一系列数字和大写字母组成:

m=1A2B3C4D6D8A7D5S.32D4D1D5D3D6D8D&nextparam=...

我尝试使用 {x,x} 变体但没有成功

最佳答案

解决这个问题的关键是使用“单词边界”正则表达式\b

提取“m”参数的值:

String m = str.replaceAll(".*?\\bm=([^&]+).*", "$1");

关于java - 使用正则表达式匹配查询字符串中的重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24476791/

相关文章:

javascript - 如何使用正则表达式在多行上选择包含任意字符的值?

c# - 即使字符串匹配,正则表达式验证也会显示错误

regex - 在 R 统计中创建正则表达式

asp.net - url 显示奇怪的字符串

java - Apache Camel | FTP |仅使用单个文件

java - 如何在EMR上设置 reducer 数量

java - GlassFish 管理控制台上的运行时异常

java - 导致替代 JVM 语言的真实用例是什么?

php - 获取 youtube 视频 ID PHP

Android:在新窗口中打开 URL,无需离开应用程序