2015-04-03 41 views
1

我嘗試在文本中查找以大寫字母開頭的單詞。但我不僅需要解析拉丁文字母。代碼 部分: - 字邊界 Java正則表達式 - 以大寫字母開頭的單詞 - 不僅拉丁文

  • \p{Lu} - 大寫的Unicode信
  • \p{L}*

    String pattern = "[^[\\p{Upper}\\p{Lu}]\\w]"; 
    Pattern r = Pattern.compile(pattern); 
    
    StringTokenizer itr = new StringTokenizer(value.toString()); 
    while (itr.hasMoreTokens()) { 
        word.set(itr.nextToken()); 
        Boolean m = word.toString().matches(pattern); 
    
        if(m) 
        { 
         uid.set(word); 
         context.write(uid, one); 
        } 
    } 
    
  • 回答

    1

    詞,隨着Java的大寫字母開始可以用

    String pattern ="\\b\\p{Lu}\\p{L}*\\b"; 
    
    • \b發現 - 任何Unicode字母,0或更多的重複
    • \b - 單詞邊界

    示例代碼:

    String str = "\u042F \u0425\u043E\u0436\u0443 \u043F\u043E \u0432\u043E\u0434\u0435."; 
    String rx = "\\b\\p{Lu}\\p{L}*\\b"; 
    Pattern ptrn = Pattern.compile(rx); 
    Matcher m = ptrn.matcher(str); 
    while (m.find()) { 
        System.out.println(m.group(0)); 
    } 
    
    相關問題