JAva中国語の正規表現にマッチ

1460 ワード

Javaの正規表現はどのように中国語の文字にマッチしますか?
 
次に、すべての中国語文字を一致させる例を示します.
 
	public static void regxChinese(){
        //           
        String source = "<span title='5     ' class='dx dx5'>";
        //                   
       // source = source.toLowerCase();   
        //                
        String reg_charset = "<span[^>]*?title=\'([0-9]*[\\s|\\S]*[\u4E00-\u9FA5]*)\'[\\s|\\S]*class=\'[a-z]*[\\s|\\S]*[a-z]*[0-9]*\'";     
  
        Pattern p = Pattern.compile(reg_charset);   
        Matcher m = p.matcher(source);   
        while (m.find()) {   
        	System.out.println(m.group(1));
        }
	}

 
出力は次のとおりです.
 
5     

 
 
注記:すべての中国語文字に一致する正規表現は次のとおりです.
 
[\u4E00-\u9FA5]  ﹐[\uFE30-\uFFA0]    

 
したがって、Javaの正規表現は中国語の文字に一致するとともに、中国語の文字で表現を書くこともできます.例えば、上の文字は次の文字に一致します.
 
5     

 
上記の例の中国語の正規表現は、次のように書くこともできます.
 
 
        String reg_charset = "<span[^>]*?title=\'([0-9]*[\\s|\\S]*    )\'[\\s|\\S]*class=\'[a-z]*[\\s|\\S]*[a-z]*[0-9]*\'";     

 
しかし、柔軟性のためには、中国語で正規表現を書かないほうがいいです.このように書くのは死にすぎて、うっかり複数のスペースが一致しません.