pattern_match
package sec10.exam01_pattern_match;
import java.util.regex.Pattern;
public class PatternExample {
public static void main(String[] args) {
String regExp = "(02|010)-\\d{3,4}-\\d{4}";// 자바에서는 역슬래쉬가 특정한의미가 있으므로 역슬래쉬가 역슬래쉬임을 알리기 위해 역슬래쉬를 두번 쓴다.
String data = "010-123-4567";//사용자가 입력한 데이터라고 가정
boolean result = Pattern.matches(regExp, data); //정규표현식으로 data를 검정한다.
if(result) {
System.out.println("정규식과 일치합니다.");
}else {
System.out.println("정규식과 일치하지 않습니다.");
}
//정규식과 일치합니다.
regExp = "\\w+@\\w+\\.\\w+(\\.\\w+)?";
data = "angel@naver.com"; //co.kr 이 되에 들어가면 .kr 부분이 (\\.\\w+)? 에 해당된다. 즉 있어도 되고, 없어도 된다는 뜻이다. -> 물음표
result = Pattern.matches(regExp, data);
if(result) {
System.out.println("정규식과 일치합니다.");
}else {
System.out.println("정규식과 일치하지 않습니다.");
}
//정규식과 일치합니다.
}
}
필기
package regularexpression;
/*
정규 표현식과 Pattern 클래스
정규 표현식(Regular Expression)
문자열이 정해져 있는 형식으로 구성되어 있는지 검증할 때 사용한다.
-> 이메일, 전화번호, 비밀번호 등
-> 문자 또는 숫자 기호와 반복 기호가 결합된 문자열이다.
정규 표현식 작성방법
-> 기본적으로 알아두어야할 기호
[] 한개의 문자
-> [abc] a,b,c 중 하나의 문자
-> [^abc] a,b,c 이외의하나의 문자
-> [a-zA-Z] a~z, A ~Z중 하나의 문자
\d 한개의 숫자, [0-9]와 동일
\s 공백
\w 한개의 알파벳 도는 한개의 숫자, [a-zA-Z_0-9]와 동일
? 없음 또는 한 개
* 없음 또는 한 개 이상
+ 한 개 이상
{n} 정확히 n개
{n,} 최소한 n개
{n,n} n개에서부터 m개까지
() 그룹핑
전화번호
(02|010)-\d{3,4}-\d{4}
//앞에 02 또는 010으로 시작을 하고, - 가 와야 하고, <\d(한개의 숫자) 인데 {3,4} 니까> 숫자가 최소 3자리에서 4자리가 와야한다.
//그리고 - 가 오고 뒤에는 \d 숫자가 오는데, 반드시 {4} 즉 네자리가 와야한다는 뜻
이메일 (white@naver.com or white@naver.co.kr)
\w+@\w+\.\w+(\.\w+)?
// \w 로 한개의 알파벳과 한개의 숫자인데, + 이므로 한개이상의 알파벳과 숫자를 말한다. @이 오고, \w+에서 또 한개이상의 문자 또는 숫자가 와야한다.
//그리고 \. 이기때문에 .이 와야한다. 그리고 붙는0 \w+는 (com)을 의미한다.
// 그리고 (co.kr)이 사용된다면 (\.\w+)? 이 온다.
Pattern 클래스
정규 표현식으로 문자열을 검증하는 역할
boolean result =Pattern.matches("정규식","입력된 문자열");
*/
반응형
'Java' 카테고리의 다른 글
[Java] 자바 패키지, 그리고 import에 대해(static import 문) (0) | 2021.01.05 |
---|---|
[Java] 왜 자바에서는 static 사용을 지양해야 하는가? (0) | 2021.01.05 |
[Java] 자바 ExecutorService와 Future에 대해서 (0) | 2021.01.04 |
[디자인패턴] 헤드퍼스트 디자인패턴 - 스트래티지 패턴 (0) | 2021.01.04 |
[Java] 자바 Map 종류와 좋은 블로그 (0) | 2021.01.04 |