2015-06-08 89 views
0

我有一個字符串,它是通過解析一個鳴叫內容的網站獲取的結果,這裏是字符串:如何從一個沒有空格的字符串中提取某些特殊字符之間的所有單詞?

「1 \ TI \ T _ \ TPRP \ TPRP \ T _ \ T2 \ tnsubj \ T _ \ T_ \ N 2 \ tneed \ T_ \ TVB \收費電視控股\ T_ \ T0 \ tnull \ T_ \ T_ \ N3 \ tmore \ T_ \ TJJ \ tJJR \ T_ \ T4 \ tamod \ T_ \ T_ \ N4 \ twords \ T_ \ TNN \ tNNS \ T_ \ T2 \ tdobj \ T_ \ T_ \ N5 \ tlike \ T_ \錫\錫\ T_ \ T4 \ tprep \ T_ \ T_ \ N6 \ tmarvel \ T_ \ TNN \ TNN \ T_ \ T5 \ tpobj \ T_ \ T_ \ N7 \ TOR \ T_ \ TCC \ TCC \ T_ \ T6 \ TCC \ T_ \ T_ \ n8 \ TCAT \ T_ \ TNN \ TNN \ T_ \ T6 \ tconj \ T_ \ T_ \ N9 \ TOR \ T_ \ TCC \ TCC \ T_ \ T6 \ TCC \ T_ \ T_ \ N10 \ tpancake \ T_ \ TNN \ TNN \ T_ \ T6 \ tconj \ T_ \ T_ \ N11 \ TOR \ T_ \ TCC \ TCC \ T_ \ T10 \ TCC \ T_ \ T_ \ n12 \ tf \ t_ \ tNN \ tNN \ t_ \ t10 \ tconj \ t_ \ t_「,」text「:」我需要更多單詞,如奇蹟或貓或煎餅或法國「

我想要得到所有在「\ t」和「\ t_ \ tNN」之間的單詞,換句話說,我想要名詞,我希望輸出成爲「單詞」,「奇蹟」,「貓」,「煎餅」, 「法國」。

我嘗試下面的代碼:

private void regex(String s){ 
     if(s.indexOf("error") >= 1){ 
      Toast.makeText(this, "Sorry the site failed again it's not my fault :(", 
         Toast.LENGTH_SHORT).show(); 
     } 
     else{ 
      Pattern pattern = Pattern.compile("\t(.*?)\t_\tNN"); 
      Matcher matcher = pattern.matcher(s); 
      System.out.println(s); 
      if (matcher.find()) { 
       String result = matcher.group(1); 
       System.out.println(result); 
      } 
     } 

    } 

我相信我得到了pattern.compile串錯..它不工作,似乎無法找到我想要的話..

莫非有人告訴我應該如何解決它?

P.S.關於製表符「/ t」,我實際上打印了整個網站的結果,但是當我以字符串的形式得到結果時,我想它們變成反斜槓和「t」而不是製表符。

+0

是'\ t'在字符串中,反斜線和字母 「t」 或製表符?打印時會發生什麼? –

+0

這是一個反斜槓和字母t是的,我從來沒有試過只打印這兩個字符,但是當我打印整個字符串時,它就像我提出的問題一樣。 –

+0

然後嘗試'\\ t(。*?)\\ t _ \\ tNN'作爲您的模式。它可能將'\ t'作爲標籤讀取,並且您需要將反斜槓轉義爲文字。 – TessellatingHeckler

回答

1

您可以使用以下方法:

"\\\\t([^\\\\]*?)\\\\t_\\\\tNN" 

Ideone Demo

RegEx Demo

+0

太棒了!謝謝:) –

+0

樂於幫助:) –

+0

這適用於您的示例文本,但您確實需要確保您使用此解決方案後所要使用的單詞中沒有'\'。 – JimW

相關問題