YS's develop story

자주 사용하는 정규 표현식(Regex) 정리 본문

Java

자주 사용하는 정규 표현식(Regex) 정리

Yusang 2023. 8. 1. 17:49

시작을 의미함 ex) ^[.]  ->.로 시작한다면..

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("^[.]", "X");
System.out.println(string); // -> X..!@BaT#*..y.abcdefghijklm

 

^a -> a로 시작한다면..

String string1 = "apple";
string1 = string1.replaceAll("^a","X");
System.out.println(string1); // -> Xpple;

 

주의할 점은 괄호 [] 안에 ^가 있다면 부정의 의미로 사용됩니다.

[^.] ->. 이 아니라면..

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("[^.]", "X");
System.out.println(string); // -> ...XXXXXXX..X.XXXXXXXXXXXXX

 

$

$앞의 문자열로 끝나는지를 의미함 ex) m$  -> m로 끝난다면..

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("m$", "X");
System.out.println(string); // -> ...!@BaT#*..y.abcdefghijklX

 

 

[]

괄호 안에 문자가 있는지 확인

괄호 안에 ^가 쓰이면 제외를 뜻함 ex) [^a-zA-Z] -> a-z까지의 소문자, 대문자 알파벳을 제외한..

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("[^a-zA-Z]", "X");
System.out.println(string); // -> XXXXXBaTXXXXyXabcdefghijklm

String string1 = "...!@BaT#*..y.abcdefghijklm";
string1 = string.replaceAll("[^a-z]", "X");
System.out.println(string1); // -> XXXXXXaXXXXXyXabcdefghijklm

 

|

or

ex) ^[.]|m$ ->.로 시작하거나 m으로 끝나거나

ex) ^[a-z]|[a-z]$ -> a-z로 시작하거나 a-z로 끝나거나

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("^[.]|m$", "X");
System.out.println(string); // -> X..!@BaT#*..y.abcdefghijklX

String string1 = "...!@BaT#*..y.abcdefghijklm";
string1 = string1.replaceAll("^[a-z]|[a-z]$", "X");
System.out.println(string1); // -> ...!@BaT#*..y.abcdefghijklX

 

{}

{n} -> n개 있다면.. ex) m {2} -> m이 딱 두 개 있다면

String string1 = "...!@BaT#*..y.abcdefghijklmm";
string1 = string1.replaceAll("m{2}", "X");
System.out.println(string1); //...!@BaT#*..y.abcdefghijklX

 

{n, m} -> n개 이상 m개 이하 있다면.. ex) [.]{1,2} ->. 이 1개 이상, 2개 이하이면

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("[.]{1,2}", "X");
System.out.println(string); //XX!@BaT#*XyXabcdefghijklm

 

{n,} -> n개 이상 있다면.. ex) [.]{2,} ->. 이 두 개 이상 있다면

String string = "...!@BaT#*..y.abcdefghijklm";
string = string.replaceAll("[.]{2,}", "X");
System.out.println(string); //X!@BaT#*Xy.abcdefghijklm

 

 

코테에서 정규표현식을 사용하면 매우 쉽게 풀 수 있는 문제들이 종종 나오는 것 같다

https://school.programmers.co.kr/learn/courses/30/lessons/72410

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

Comments