簡體   English   中英

Java正則表達式提取鍵值對

[英]Java regular expression to extract key value pairs

如何使用Java從該字符串中提取bookid的值?

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

通常,您應該使用一些解析器,但是如果您的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

Pshemo,您擊敗了我,但您也可以使用此命令:“(id \\ = [0-9] *)”

並嘗試RegexPlanet嘗試使用您的正則表達式並檢索Java格式的帶分隔符的字符串

您可以使用以下代碼段:

            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);

一個非常簡單的答案是

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

這將為您提供每個元素中a = b形式的所有參數。 然后,您可以拆分所需的參數。

但理想情況下,您應該按參數名稱提取值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM