2014-01-14 63 views
2

我想識別不同的網址並用特定的活動打開它。清單中的Android網址方案

我在清單聲明意圖過濾器和它的作品,如果我用簡單的條件:

<data 
    android:host="www.myhost.fr" 
    android:pathPattern="/.*\\.shtml" 
    android:scheme="http" /> 

如果我想區分,如「故事」和「視頻」關鍵詞,我改變我的pathPattern這樣。

活動故事:

<data 
    android:host="www.myhost.fr" 
    android:pathPattern="/.*story\\.shtml" 
    android:scheme="http" /> 

活動視頻:

<data 
    android:host="www.myhost.fr" 
    android:pathPattern="/.*video\\.shtml" 
    android:scheme="http" /> 

編輯 的url我試圖攔截:

的ID爲 「/」 前皆爲對故事和視頻。對於比賽,它是不同的。

當我測試這個解決方案時,模式不被識別。如果我在網上用正則表達式測試它,它說它是正確的。

有什麼想法?

+1

你想要完全匹配什麼網址? – Andros

+0

我加了他們,謝謝注意 – Seynorth

+0

我不是100%確定,所以我不會創建答案,但你可以嘗試:「/.*/video.shtml」 – Andros

回答

0

你想捕獲包含.shtml的ID和特定單詞嗎?

我試着用:

((\d+)/(story\.shtml|video\.shtml))|(match_mtc(\d+)\.shtml) 

而且在團體捕獲的ID和關鍵字,如果它是故事或視頻,或者僅僅是ID,如果它是「match_mtc」。

你可能不得不加倍正則表達式的Java這樣逃脫字符:

((\\d+)/(story\\.shtml|video\\.shtml))|(match_mtc(\\d+)\\.shtml) 

然後,您可以調用組,$ 1,$ 2,...,$ n和取得的具體你需要的字符串。

+0

感謝您的回答。其實,我的問題集中在顯示。正則表達式在清單文件中非常有限。我們唯一的解決方案是聲明幾個數據項,如:(其他人擁有較少的」/.*「)。希望能幫助到你 ! – Seynorth