자바 프로 그래 밍 에서 정규 표현 식 사용 하기
boolean matches(String regex)
regex: 지정 한 정규 표현 식 입 니 다.반환 값: boolean 형식 을 되 돌려 줍 니 다.이 방법 은 현재 문자열 이 매개 변수 regex 가 지정 한 정규 표현 식 과 일치 하 는 지 알려 주 는 데 사 용 됩 니 다. 반환 값 은 boolean 형식 입 니 다. 현재 문자열 이 정규 표현 식 과 일치 하면 이 방법 은 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 로 돌아 갑 니 다.
정규 표현 식 은 특수 한 의 미 를 가 진 문자 로 구 성 된 문자열 입 니 다. 이 특수 한 의 미 를 가 진 문 자 를 원 문자 라 고 합 니 다. 다음은 정규 표현 식 의 일부 원 문 자 를 보 여 줍 니 다. 정규 표현 식 의 쓰기 에 서 는 다음 원 문자 앞 에 '\' 기 호 를 추가 하여 번역 해 야 합 니 다. 예 를 들 어 원 문자 '\ d' 는 정규 표현 식 의 쓰기 에 '\ d' 입 니 다.그러나 '...' 에 대해 번역 한 후에 임의의 문 자 를 대표 하 는 것 이 아니 라 구체 적 인 문장 을 나타 낸다.
.: 임의의 문 자 를 대표 합 니 다. \d: 0 ~ 9 를 나타 내 는 모든 숫자 입 니 다. \D: 모든 비 숫자 문 자 를 대표 합 니 다. \s: 공백 문 자 를 의미 합 니 다. \S: 비 공백 문 자 를 의미 합 니 다. \w: 식별 자로 사용 할 수 있 는 문 자 를 대표 하지만 "$" 는 포함 되 지 않 습 니 다. \W: 식별 자로 사용 할 수 없 는 문 자 를 의미 합 니 다. \p {Lower}: 소문 자 a ~ z 를 대표 합 니 다. \ \p {Upper}: 대문자 A ~ A 를 대표 합 니 다. \ \p {ASCII}: ASCII 문자 입 니 다. \p {알파}: 알파벳 문자. \p {Digit}: 10 진수, 0 ~ 9. \p {Alnum}: 숫자 나 알파벳 문자 입 니 다. \p {Punct}: 문장 부호. \p {Graph}: 보 이 는 문자 입 니 다. \p {Print}: 문 자 를 인쇄 할 수 있 습 니 다. \p {Blank}: 공백 또는 탭 문자 입 니 다. \p {Cntrl}: 제어 문자 입 니 다.
정규 표현 식 을 사용 할 때 특정한 유형의 메타 문 자 를 여러 번 출력 해 야 한다 면 한 번 씩 입력 하 는 것 이 상당히 번 거 로 울 것 입 니 다. 이 때 정규 표현 식 의 한정 문 자 를 사용 하여 횟수 를 반복 할 수 있 습 니 다. 다음은 자주 사용 하 는 한정 문자 와 그 의 미 를 보 여 줍 니 다.
?:0 회 혹은 1 회.0 회 혹은 여러 번. +:0 회 혹은 1 회.{n}: n 회 반복.{n,}: 적어도 n 번 반복 합 니 다.{n, m}: n ~ m 회 반복 합 니 다.
정규 표현 식 에 서 는 여러 문 자 를 괄호 로 묶 을 수 있 습 니 다. 괄호 에 있 는 각종 정규 표현 식 은 서로 다른 의 미 를 대표 합 니 다. 다음은 괄호 에 있 는 메타 문자 와 그 의 미 를 보 여 줍 니 다.
[abc]: a, b 또는 c 를 나타 낸다.[^ abc]: a, b, c 이외 의 모든 문 자 를 표시 합 니 다.[a - zA - Z]: a ~ z 또는 A ~ Z 의 모든 문자.[a - d [m - p]: a ~ d 또는 m ~ p 의 모든 문자.[a - z & [def]: d, e 또는 f.[a - z & & [^ bc]]: a ~ z 사이 에는 b 와 c 의 모든 문자 가 포함 되 어 있 지 않 습 니 다.[a - z & & [^ m - p]: a ~ z 사이 에는 m ~ p 의 모든 문자 가 포함 되 어 있 지 않 습 니 다.
용법 예시: 1. 차 번호:
/**
*
* @description:
* @param carNum
* A106EK
* @return :true :false
*/
public static boolean validateCarNum(String carNum) {
boolean result = false;
String[] provence = new String[] { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " };
String reg = "[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}";
boolean firstChar = false;
if (carNum.length() > 0) {
firstChar = Arrays.asList(provence).contains(carNum.substring(0, 1));
}
try {
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(carNum);
if (m.matches() && firstChar) {
result = true;
} else {
result = false;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
2. 핸드폰 번호:
/**
*
* @description:
* @param mobileNum 15516985859
* @return :true :false
*/
public static boolean isMobileNum(String mobileNum) {
boolean result = false;
try {
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
Matcher m = p.matcher(mobileNum);
result = m.matches();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
핸드폰 번호 + 고정 전화: 010 - 111111, 155169858559, 0377 - 111111
//java ( 、 )
String legalPhone = "";
String regExp ="^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}|[0]{1}[0-9]{2,3}-[0-9]{7,8}$";
Pattern p = Pattern.compile(regExp);
Matcher m = p.matcher(importPotentialBFOs[i].getLegalPhone());
if(m.find()){ // :m.find , false
legalPhone = importPotentialBFOs[i].getLegalPhone();
uploadTmp.setLegalTelephone(legalPhone);
}else{
throw new BizException(" !");
}
3. 실수:
String[] arrs=new String[]{"a","1.123","-1.23","0","+111"};
String regex="-?\\d+\\.?\\d*";
Pattern p = Pattern.compile(regex);
for (int i = 0; i < arrs.length; i++) {
Matcher m = p.matcher(arrs[i]);
System.out.println(arrs[i]+":"+m.matches());
}
인쇄:
a:false
1.123:true
-1.23:true
0:true
+111:false
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.