bookid
Javaを使用してこの文字列からの値を抽出するにはどうすればよいですか?
href="http://www.books.com/?bookname=cooking&bookid=12345678&bookprice=123.45">cooking book
通常はパーサーを使用する必要がありますが、文字列が本当にこれほど短い場合は、正規表現を次のようなオプションにすることができます。
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
非常に簡単な答えは
String[] queryParams = url.split("\\?")[1].split("&");
これにより、各要素のa=b形式のすべてのパラメーターが得られます。次に、必要なパラメータを分割するだけです。
ただし、理想的には、パラメータ名で値を抽出する必要があります
Pshemoあなたは私をそれに打ち負かしましたが、これを使用することもできます: "(id \ = [0-9] *)"
正規表現を試して、Java形式でエスケープされた文字列を取得するには、RegexPlanetを試してください
次のコードスニペットを使用できます。
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);