0

如何bookid使用 Java 从这个字符串中提取值?

href="http://www.books.com/?bookname=cooking&bookid=12345678&bookprice=123.45">cooking book
4

4 回答 4

4

通常你应该使用一些解析器,但如果你的字符串真的这么短,那么也许正则表达式可以是这样的选项

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

于 2012-07-28T19:24:50.643 回答
1

一个非常简单的答案是

String[] queryParams =  url.split("\\?")[1].split("&");

这将为您提供每个元素中 a=b 形式的所有参数。然后,您可以拆分所需的参数。

但理想情况下,您应该通过参数名称提取值

于 2012-07-28T19:32:47.720 回答
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);
于 2012-07-28T19:29:28.367 回答
0

Pshemo 你打败了我,但你也可以使用这个:“(id \ = [0-9] *)”

并尝试RegexPlanet尝试您的正则表达式并以 java 格式检索转义的字符串

于 2012-07-28T19:26:50.197 回答