2011-01-13 17 views
0

我的應用程序還支持旁遮普語(\ u0A00- \ u0A7F) 我嘗試下面的代碼定期爲UTF-8的語言表達

Pattern classPattern = Pattern.compile("\u0A00-\u0A7F "); 
    Matcher classMatcher = classPattern.matcher("ਭਾਸ਼ਾ ਸੰਦ"); 
      if (classMatcher.find()) { 
       System.out.println("yes"); 
      }else{ 
       System.out.println("no"); 
      } 

我得到「沒有」的輸出,雖然我在匹配提供的旁遮普本地字符( )

有什麼想法爲什麼?

+0

而不是使用文字`[\ u0A00- \ u0A7F]`,爲什麼不使用`\ p {InGurmukhi}`而不是?這是現在的象徵,而不是一個神奇的數字,這是可取的。你可以單獨在正則表達式中使用它,或者作爲封閉字符類的一部分。 – tchrist 2011-01-13 14:46:34

回答

6

如果這種模式是"[\u0A00-\u0A7F ]"?它看起來像你想按特定順序匹配四個字符,但給匹配器六個字符作爲輸入。

+0

謝謝,做了一個愚蠢的錯誤沒有保留括號;( – Varun 2011-01-13 10:26:20

1

因爲「asdsa」不是旁遮普[你給將尋找pubjabi字符的圖案,DN ABC並不]

+0

對不起更新的問題...我的意思是它的一切顯示不是... – Varun 2011-01-13 10:18:05

+0

`[\ u0A00- \ u0A7F]`與[a-zA-Z] \t相同a到z或A到Z(包括範圍) `並確保`ਭਾਸ਼ਾਸੰਦ`所有這些字符屬於提供的範圍 – 2011-01-13 10:21:10

3
[\u0A00-\u0A7F ]* 

沒有星號,只會匹配單個字符。您可以用+替換*,然後空字符串將不被接受。請參閱Pattern class JavaDocs。快速理解正則表達式非常有用。