2013-11-21 79 views
1

解析這樣的URL最好的方式,我有這個2種網址:什麼是Android

www.test.com/#!search/keyword/cat=52400005/ 

www.test.com/#!search/keyword/cat=52400005 

我想提取從這種字符串keywordcatkeyword是可變的,並且cat之後是=)。

這怎麼能實現呢?

在此先感謝。

+1

您可以在字符「/」上拆分字符串,然後在「=」上拆分子字符串。如果單詞的位置總是相同,則很容易提取單詞。 – Massimo

回答

2

此正則表達式將會給你

^www.test.com/#!search/(.+)/cat=(.+)/$ 

Pattern p = Pattern.compile("^www.test.com/#!search/(.+)/cat=(.+)/$"); 
Matcher m = p.matcher(url); 

while(m.find()) { 
    String keyword = m.group(1); 
    String cat = m.group(2); 
} 

關鍵字是第一組,貓是第二。

+0

謝謝,但是如何在java/android中使用'regex'。你能否請求給我一些示例代碼? – srain

+0

@srain剛剛添加。 – holap

+0

謝謝,那幾乎完美,但是如何匹配這個例子:'www.test.com /#!search/keyword/cat = 52400005',最後沒有'/'。 – srain

3
URL url = new URL("http://www.test.com/#!search/keyword/cat=52400005/");   
    String ref = url.getRef(); 

    List<String> segments = Uri.parse(ref).getPathSegments(); 


    String keyWord = segments.get(1); 
    String cat = segments.get(2).substring(4); 

編輯:測試和工作。

+0

感謝您的幫助,但'#!search/keyword/cat = 52400005 /'不是'Path'的一部分,它在錨標籤中。 – srain

+0

糟糕,沒有看到。現在修復。 –

+0

這個解決方案也在工作,但我已經勾選了其他答案,謝謝你,你很親切。 – srain