일반 영어, 순수한 숫자의 조합, 숫자, 자바의 문자열은 일반적으로 일반 str.matches 일치를 사용 여부를 결정할 때, 일반 주어진 문자열과 정규 표현식 일치 여부를 알려줍니다.
- 유니 코드 문자 인코딩 다양한 범위 :
- 문자 [0x4e00,0x9fa5 (또는 10 진수 [19968,40869])
- 도 [0x30,0x39 (소수점 또는 [48, 57])
- 소문자가 [0x61,0x7a (또는 10 진수 [97, 122])
- 대문자 : 0x41,0x5a (소수점 또는 [65, 90])
가져 오기 java.util.regex.Matcher;
가져 오기 있으며, java.util.regex.Pattern는,
공공 클래스 StrValidate {
// 순수 디지털
개인 정적 문자열 DIGIT_REGEX는 = "[0-9] +" ;
//는 디지털 포함
개인 정적 "문자열 = CONTAIN_DIGIT_REGEX을 . * [0-9] *. " ;
// 순수 글자
개인 정적 문자열 LETTER_REGEX ="[A-ZA-는 Z] + " ;
//이 문자가 포함
개인 정적 문자열 CONTAIN_LETTER_REGEX =을."* [A-ZA-Z] . * " ;
// 순수 중국어
개인 정적CHINESE_REGEX = 문자열 "[\ u4e00- \ u9fa5]" ;
// 영숫자
개인 정적 스트링 LETTER_DIGIT_REGEX = "^ [은 Z-A-z0-9A] + $" ;
개인 정적 스트링 CHINESE_LETTER_REGEX = "([\ u4e00 - \ u9fa5] + | [A-ZA-는 Z] +) " ;
개인 정적 스트링 CHINESE_LETTER_DIGIT_REGEX ="^ [은 Z-A-z0-9A \ u4e00- \ u9fa5] + $ " ;
/ **
*이 결정되었는지의 여부를 문자열 숫자와 문자를 포함
*
* 파라미터 : STR
* @return
* /
공공 정적 부울 isLetterDigit (문자열 STR) {
반환 str.matches (LETTER_DIGIT_REGEX);
}
/ **
구두점을 포함하지 * 여부를 문자,
*
* 파라미터 : CON
* @return 한자 true로
* /
공공 정적 부울 isChinese (문자열 CON) {
패턴 패턴 = 는 Pattern.compile의 (CHINESE_REGEX)
에 대한 ( INT I = 0; 나는 < con.length ();. 내가 +를 = 1 ) {
IF (! Pattern.matcher는 (
. 찾기 ()) {한 String.valueOf (con.charAt은 (내가)))
반환 거짓 ;
}
}
반환 true로를 ;
}
/ **
* 정규 표현식은 문자열의 여부를 판단
문자, 숫자 및 문자를 포함 할 것이다
*
* @param STR
* @return
* /
공공 정적 부울 isLetterDigitOrChinese (문자열 STR) {
반환 str.matches (CHINESE_LETTER_DIGIT_REGEX);
}
/ **
이름 * 문자와 문자를 포함 할 수 있습니다, 다른 캐릭터
*
* @param passengerName
* @return
* /
공공 정적 부울 checkChineseLetter (문자열 passengerName) {
패턴 패턴 = 는 Pattern.compile의 (CHINESE_LETTER_REGEX) 없다
Matcher를 Matcher를 = Pattern.matcher (passengerName),
IF (matcher.matches는 ()) {
// 특수 문자가 포함되지 않은
반환 참 ;
} 그렇지 않으면 {
//이 특수 문자가 포함되어
돌아 거짓 ;
}
}
/ **
*은 문자열 여부를 결정 문장 부호 (중국어 또는 영어 구두점), 진정한 포함되어 있습니다.
* 원칙 : 원래의 문자열은 세척을, 모든 문장 부호를 청소하십시오.
기준 구두점을 포함 할 경우 RET *이 경우에, 다른 길이의 문자열 전과 세척 후 true를 반환하고, 그렇지 않으면,이 거짓을 반환 길이가 동일.
*
* @param의 RET
* @return 진정한 포함하는 영어 문장에
* /
공공 정적 부울checkPunctuation (문자열 RET) {
부울 B = false로 ,
문자열 TMP = RET;
// 일반 일치 안에 완전히 대체하기는 숫자, 영어와 중국어를 떠나, 영어 문장에서 문자열을 비울 수 있습니다.
tmp.replaceAll = TMP ( "\\ P {P}", "" );
IF (! ret.length () = tmp.length ()) {
B = true로 ;
}
반환 B;
}
공공 정적 부울 isdigit에 (문자열 RET) {
반환 ret.matches (DIGIT_REGEX);
}
공공 정적 부울대해서 isLetterOrDigit (문자열 RET) {
반환 ret.matches (LETTER_REGEX);
}
공공 정적 부울 hasDigit (문자열 RET) {
반환 ret.matches (CONTAIN_DIGIT_REGEX);
}
공공 정적 부울 hasLetter (문자열 RET) {
반환 ret.matches (CONTAIN_LETTER_REGEX);
}
공공 정적 무효 메인 (문자열 []에 args) {
// 에서 System.out.println (isLetterDigitOrChinese ( "33dd33") + "-------麦迪娜·买买提--------- ");
// 에서 System.out.println (isChinese ( "麦迪娜·买买提"));
// 에서 System.out.println (isChinese ( "这个X") + "checkChineseLetter");
에서 System.out.println (isChinese ( "checkChineseLetter"));
// 에서 System.out.println (isChinese ( "checkChineseLetter3"));
에서 System.out.println (hasDigit ( "99999" ));
에서 System.out.println (hasDigit ( "9999舅舅9" ));
}
}
참고