如何使用Java从此字符串中提取bookid
的值?
href="http://www.books.com/?bookname=cooking&bookid=12345678&bookprice=123.45">cooking book
答案 0 :(得分:4)
通常你应该使用一些解析器,但如果你的String真的很短,那么正则表达式可以是像
这样的选项String s="href=\"http://www.books.com/?bookname=cooking&bookid=12345678&bookprice=123.45\">cooking book";
Pattern p= Pattern.compile("(?<=bookid=)\\d+");
Matcher m=p.matcher(s);
if (m.find())
System.out.println(m.group());
输出:
12345678
答案 1 :(得分:0)
Pshemo你打败了我,但你也可以使用它: “(ID \ = [0-9] *)”
并尝试RegexPlanet试用你的正则表达式并以java格式检索转义字符串
答案 2 :(得分:0)
您可以使用以下代码段:
String str = "href=\"http://www.books.com/?bookname=cooking&bookid=12345678&bookprice=123.45\">cooking book";
String[] strArray = str.split("&");
String bookId = "";
for(int i=0;i<strArray.length;i++)
{
if(strArray[i].startsWith("bookid"))
{
bookId = strArray[i].split("=")[1];
}
}
System.out.println("Book ID = "+bookId);
答案 3 :(得分:0)
一个非常简单的答案是
String[] queryParams = url.split("\\?")[1].split("&");
这将为您提供每个元素中a = b形式的所有参数。然后,您可以拆分所需的参数。
但理想情况下,您应该通过 param name
提取值