My Melody Is Cute 정규 표현식
본문 바로가기

기록🍌/XX

정규 표현식

 

정규표현식

텍스트에서 패턴을 검색하거나 매치시키기 위해 사용되는 문자열 표현 기법

java.util.regex패키지의 Pattern / Matcher 클래스 활용

 

1. 패턴 컴파일

Pattern.compile() 메서드

숫자 패턴을 컴파일

Pattern pattern = Pattern.compile("\\d{4}");

 

2. 매치 확인

Matcher 문자열에 패턴을 매치

matches() 메서드로 문자열이 패턴과 일치하는지 확인 가능

Matcher matcher = pattern.matcher("1234");
boolean isMatch = matcher.matches(); // true

 

3. 패턴 검색

find() 메서드를 사용하여 문자열 내에서 패턴과 일치하는 부분을 검색할 수 있다

Matcher matcher = pattern.matcher("1234 5678");
while (matcher.find()) {
    System.out.println(matcher.group()); 
    // 각 일치하는 부분 출력
}

 

4. 대체 문자열

 replaceAll() 메서드를 사용하여 문자열 내에서 패턴과 일치하는 부분을

다른 문자열로 대체할 수 있다

String modifiedString = "1234 5678".replaceAll("\\d{4}", "####"); 
// "#### ####"

 

 

정규표현식 패턴🔪

더보기
더보기
이메일 주소 패턴:

java
Copy code
String emailPattern = "^[A-Za-z0-9+_.-]+@(.+)$";
이 패턴은 이메일 주소의 형식을 검사합니다. 
이메일 주소는 user@example.com과 같은 형태를 따라야 합니다.

URL 패턴:

java
Copy code
String urlPattern = "^(https?|ftp)://[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+([:0-9])?(/.*)?$";
이 패턴은 웹 URL의 형식을 검사합니다.
http://example.com 또는 https://www.example.com:8080/page과 같은 URL을 매치합니다.

전화번호 패턴:

java
Copy code
String phonePattern = "\\(\\d{3}\\) \\d{3}-\\d{4}";
이 패턴은 미국식 전화번호 형식을 검사합니다.
예를 들어, (123) 456-7890과 같은 형태를 매치합니다.

날짜 패턴 (YYYY-MM-DD):

java
Copy code
String datePattern = "\\d{4}-\\d{2}-\\d{2}";
이 패턴은 날짜 형식을 검사합니다.
2023-11-04와 같은 날짜 형식을 매치합니다.
  1. 문자 집합 안에서의 ^: 문자 집합 내에 있는 ^는 "반전" 또는 "부정"을 의미합니다. 예를 들어, [0-9]는 0부터 9까지의 숫자를 나타내지만, [^0-9]는 0부터 9까지의 숫자를 제외한 모든 문자를 나타냅니다. 따라서 [0-9]와 [^0-9]는 숫자와 숫자를 제외한 문자를 나타내는데 사용됩니다.
  2. 문자열의 시작 부분에서의 ^: ^ 기호가 정규 표현식 패턴의 시작 부분에 나타날 때, 이것은 문자열의 시작을 나타냅니다. 예를 들어, ^abc 패턴은 문자열이 "abc"로 시작하는 경우에 일치합니다. 이것은 문자열의 시작을 강조하는 역할을 합니다.
  3. $: 문자열의 끝
    1. 그룹 사용: 정규 표현식 패턴 내에서 괄호 ()로 감싼 부분은 그룹을 형성합니다. 각 그룹은 추출할 수 있는 부분을 나타내며, $1, $2, $3 등의 형태로 그룹을 참조할 수 있습니다. 따라서 "(\d{4})(\d{4})" 패턴을 사용하면 문자열을 두 부분으로 분리하고 각 부분을 그룹으로 나눌 수 있습니다.
    2. 대체 문자열 설정: replaceAll() 메서드에서 정규 표현식 패턴으로 일치하는 부분을 대체할 때, 대체 문자열을 지정해야 합니다. $1 및 $2를 사용하여 각 그룹을 대체 문자열에 삽입하면, 두 그룹의 내용을 유지하면서 필요한 형식으로 변경할 수 있습니다. arr.replaceAll("(\\d{4})(\\d{4})", "$1-$2")

 

'기록🍌 > XX' 카테고리의 다른 글

api 키 값  (1) 2024.01.02