2014-02-24 29 views
0

好吧我試圖創建一個活動的鏈接,它的工作原理。然而passint它的變量沒有與#章程的工作:Android將變量傳遞給另一個活動,並且#不能按預期方式工作

 String hashTagString = tempValues.getDescription().replaceAll("[#]+[A-Za-z0-9-_]+\\b", "<a href=\"sherif-activity://myactivity?tag=$0\">$0</a>"); 

     Log.i(Utils.TAG, "hashTagString: " + hashTagString); 

的推出活動:

String tag = getIntent().getData().getQueryParameter("tag"); 
    Log.i(Utils.TAG, "tag: " + tag); 

登錄貓:

02-24 13:12:04.293: I/PROJECTCARUSO(29591): hashTagString: Everyone loves <a href="sherif-activity://myactivity?tag=#hashtags">#hashtags</a> ! Take advantage of them by using them and clicking to search by them. 

它啓動表明這一點的活動:

02-24 13:13:48.885: I/PROJECTCARUSO(29591): tag: 

但是如果我硬編碼的值來設置它顯示:

02-24 13:14:41.176: I/PROJECTCARUSO(29883): hashTagString: Everyone loves <a href="sherif-activity://myactivity?tag=test">#hashtags</a> ! Take advantage of them by using them and clicking to search by them. 
02-24 13:14:41.637: I/PROJECTCARUSO(29883): tag: test 

我想通過整體價值,但如果我不能我怎麼能刪除所有特殊的字符?

回答

0

我不認爲你的正則表達式正在使用以下正則表達式

\\#[A-Za-z0-9\\-_]+ 

您可能需要雙轉義(\)評估correctlyTry。你的序列末尾的\ b(單詞邊界)是不需要的,因爲當它到達「無論如何,並且 - 你的角色類需要轉義時否則它會中斷,否則正則表達式試圖評估一個無意義範圍而不是處理它作爲一個char

編輯

現在你已經澄清了您的問題的問題與得到一個空白tagis這樣的:

String tag = getIntent().getData().getQueryParameter("tag"); 

應該

String tag = getIntent().getExtras().getString("tag"); 

,並應作爲發送

new Intent(...).putExtra("tag", hashTagString); 
+0

無效的轉義序列(有效問卷是\ B \牛逼\ n \˚F\ r \」 \」 \\)當我與你 – jcaruso

+0

替換我正則表達式日誌說'#hashtags'那麼你爲什麼會認爲它沒有正確評估它? – jcaruso

+0

你是否像我說過的那樣逃脫它們? –

0

嘗試(\s|\A)#(\w+),作爲一個Java字符串是"(\\s|\\A)#(\\w+)"

您可以在以下網站進行測試:http://www.regexplanet.com/advanced/java/index.html

+0

我認爲你錯過了這個問題......正則表達式起作用。將它作爲變量傳遞給下一個活動不會。我可能需要從$ 0中刪除'#'才能獲得文本,但我不確定。那從那以後呢? – jcaruso

相關問題