Java 从具有结束值和非结束值的字符串中查找数字

Java 从具有结束值和非结束值的字符串中查找数字,java,regex,Java,Regex,我有这样一个字符串:下面有两个示例 ?dtg=6&reqp=1&reqr= ?dtg=654&reqp=1&reqr= ?dtg=785 我想取dtg后面的号码 因此,在案例1中,我想要6,在案例2中,我想要654,在案例3中,我想要785使用(regex): 您可以使用String#repaceFirst String repl = string.replaceFirst("\\?dtg=(\\d+).*", "$1"); 如果dtg不是第一个url参数,请

我有这样一个字符串:下面有两个示例

?dtg=6&reqp=1&reqr=
?dtg=654&reqp=1&reqr=
?dtg=785
我想取
dtg
后面的号码

因此,在案例1中,我想要
6
,在案例2中,我想要
654
,在案例3中,我想要
785
使用(regex):

您可以使用
String#repaceFirst

String repl = string.replaceFirst("\\?dtg=(\\d+).*", "$1");

如果
dtg
不是第一个url参数,请使用此选项

dtg=(.*?)(?:&|$)

工作示例:

虽然在大多数情况下使用正则表达式会有所帮助,但对我来说,您有一个来自
URL
的查询字符串示例-如果是这种情况,我会将该查询字符串转换为
Map
,然后获取
dtg
键的值(这将处理此类情况: ?dtg=6&reqp=1&dtg=121212&reqr= )

dtg=(.*?)(?:&|$)