[Java]자주 사용되는 정규표현식

박중연·2024년 3월 26일

🔎정규 표현식(Regular Expression)이란?

  • 정규표현식 혹은 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어다.
    정규 표현식은 텍스트 편집기나 스크립트 언어에서 문자열의 검색과 치환을 위해 지원하고 있다. 특히 Perl같은 스크립트 언어는 언어 자체에서 강력한 정규표현식을 구현하고 있어, 문자열, 텍스트 처리에 특화된 스크립트를 작성할 수 있다.

자바에서도 이러한 정규표현식을 사용할 수 있도록 여러가지 유틸을 제공하고 있다.

🔎 자바 정규표현식

Pattenrn 클래스

java.util.regex.Pattern 클래스는 matches()메소드를 지원한다. 이 메소드로 특정 문자열이 주어진 정규식에 매칭되는지 테스팅 해볼 수 있음.

String Pattern = "^[0-9]*$"; // 숫자만 있는지 패턴 작성
String str = "123321";

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

그외 지원하는 다른 메소드들

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

Matcher클래스

Matcher 클래스는 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 체크할 때 주로 사용

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

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)지정된 그룹이 매칭되는 끝 바로 다음 문자 위치를 반환

정규표현식 문법

문자내용
^문자열의 시작
$문자열의 끝
.임의의 한 문자
*문자가 0번 이상 발생
+문자가 1번 이상 발생
?문자가 0번 혹은 1번 발생
[ ]문자의 집합 범위를 나타냄
[0-9] : 숫자 (0부터9)
[a-z] : 알파벳 (a부터z)
앞에 ^가 나타나면 not을 의미한다.
{ }횟수 또는 범위를 의미
( )소괄호 안의 문자를 하나의 문자로 인식
 |OR 조건
\확장문자의시작
\b단어의 경계
\B단어가 아닌 것의 경계
\A입력의 시작부분
\G이전 매치의 끝
\Z입력의 끝이지만 종결자가 있는경우
\z입력의 끝
\s공백문자
\S공백문자가 아닌 나머지 문자
\w알파벳이나 숫자
\W알파벳이나 숫자를 제외한 문자
\d[0-9]와 동일
\D숫자를 제외한 모든 문자
profile
개발자로 취업하기

0개의 댓글