0

bookidJavaを使用してこの文字列からの値を抽出するにはどうすればよいですか?

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

Pshemoあなたは私をそれに打ち負かしましたが、これを使用することもできます: "(id \ = [0-9] *)"

正規表現を試して、Java形式でエスケープされた文字列を取得するには、RegexPlanetを試してください

于 2012-07-28T19:26:50.197 に答える
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 に答える