정규표현식

권보원·2023년 9월 17일
0
post-thumbnail

정규표현식이란(Regular Expression)

특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어

정규표현식 문법

  • 위는 이메일주소의 정규표현식이다.


  • [가-힣] : 한글
  • [A-Z]: 대문자
  • [a-z]: 소문자
  • [A-Za-z]: 알파벳
  • [0-9]: 숫자

https://hamait.tistory.com/342

자바 정규표현식

java.util.regex 패키지에 있는 클래스를 사용하면 된다
Pattern, Matcher, replaceAll 에서 주로 사용한다.

Pattern 클래스

특정 문자열이 주어진 정규식에 매칭되는 지 테스트 할 수 있다.

String pattern = "^[0-9]*$"; // 숫자만 등장하는지
String str = "123321"; 

boolean result = Pattern.matches(pattern, str);
System.out.println(result); // true

matches() 메소드의 첫 번째 인자는 정규 표현식이고, 두 번째 인자는 정규표현식이 매칭되는지 확인하는 문자열이다.
정규표현식에 매칭되면 true가 리턴되고 아니면 false가 리턴된다.

compile(String regex); 주어진 정규표현식으로부터 패턴 생성
matcher(CarSequence input); 대상 문자열이 패턴과 일치할 경우
asPredicate(); 문자열을 일치시키는데 사용할 수 있는 Predicate 작성
pattern(); 컴파일된 정규표현식을 String 형태로 변환
split(CharSequence input); 문자열을 주어진 인자값 CharSequence 패턴에 따라 분리

Matcher 클래스

문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 체크할 때 주로 사용한다.
Matcher 객체는 Pattern객체의 matcher() 메소드를 호출해서 얻는다.

Pattern pattern = Pattern.compile("^[0-9]*$");
String str = "04234234";

Matcher matcher = pattern.matcher(str);
System.out.println(matcher.find());

matches() 대상 문자열과 패턴이 일치하는 경우 true 반환
find() 대상 문자열과 패턴이 일치하는 경우 true 반환하고 그 위치로 이동
find(int start) start인자로 받은 위치부터 매칭 체크
start() 매칭되는 문자열의 시작 위치를 반환
start(int group) 지정된 그룹이 매칭되는 시작위치 반환
end() 매칭되는 문자열의 끝 바로 다음 위치를 반환
end(int group) 지정된 그룹이 매칭되는 끝 바로 다음 문자 위치를 반환
group() 매칭된 부분 반호나
group() 매칭된 부분 중 group 번째 그루핑 매칭부분을 반환
groupCount() 패턴내 그룹핑한 전체 갯수를 반환

replaceAll()

String replaceAll(String regex, String replacement)
대상 정규표현식을 원하는 문자 값으로 반환

String replaceAllTest = "비밀번호는: 1234입니다."; 
System.out.println( replaceAllTest.replaceAll("[0-9]","*") ); 

https://hbase.tistory.com/160

0개의 댓글