我需要从URL获取此字符串 - " start = 100" ,start可以从0变为1000+。 我尝试过像 -
这样的正则表达式 Pattern p5 = Pattern.compile(".*start=[0-9]+.*");
Pattern p6 = Pattern.compile(".*start=\\d+.*");
Pattern p7 = Pattern.compile(".*start=.*");
Pattern p8 = Pattern.compile(".*(start=[0-9]+).*");
似乎没有任何作用:(
答案 0 :(得分:1)
如果您将(
和)
添加到前2个正则表达式示例之一,或者如果您使用4 th 示例,则可以获得所需的输出。< / p>
public static void main(String[] args) {
String url = "http://localhost:8080/x?start=100&stop=1000";
Pattern p = Pattern.compile(".*(start=[0-9]+).*");
Matcher m = p.matcher(url);
if ( m.find() ) {
// m.group(0) - url
// m.group(1) - the first group (in this case - it's unique)
System.out.println(m.group(1));
}
}
输出:
start=100
答案 1 :(得分:0)
根据您的代码中URL的存在方式(可能不是字符串而是URI),您可以使用此代码段中的某些部分。
URI uri = new URI("http://localhost:8080/x?start=10&stop=100");
String[] params = uri.getQuery().split("&");
for (String param : params) {
if (param.startsWith("start=")) {
System.out.println(param);
break;
}
}