정규식에서 메타 문자 $는 특정 문자열의 끝을 의미합니다. 즉, 문자열(또는 줄)의 마지막 문자와 일치시킬 때 사용합니다. 예를 들어 다음과 같습니다.\\d$ : 숫자로 끝나는 문자열/줄과 일치합니다.[a-z]$ : 소문자 알파벳으로 끝나는 문자열/줄과 일치합니다.예제 1아래 예제는 사용자로부터 문자열을 입력받은 뒤, 해당 문자열이 영숫자(a-z, A-Z, 0-9)나 공백이 아닌 특수 문자로 끝나는지 확인하는 코드입니다.import java.util.Scanner; import java.util.regex.Matcher; impor
^ 메타 문자란? 정규 표현식(Regex)에서 메타 문자 ^(캐럿)는 문자열 또는 줄의 시작 위치를 나타냅니다. 패턴 맨 앞에 이 기호를 두면, 해당 패턴이 문자열의 첫 글자에서 일치할 때만 매칭되도록 만들 수 있습니다. 표현식 ^\\d — 숫자로 시작하는 문자열/줄과 일치합니다. 표현식 ^[a-z] — 소문자 알파벳으로 시작하는 문자열/줄과 일치합니다. 참고로 $는 반대로 문자열의 끝을 의미하는 메타 문자입니다. 아래 예제 2에서 함께 살펴보겠습니다. 예제 1 – 특수 문자로 시작하는 문자열 검사 다음 예제는 사용자에게 문자열
Java에서 제공하는 탐욕적 수량자(Greedy Quantifiers)를 사용하면 특정 표현식이 여러 번 반복되는 패턴을 손쉽게 매칭할 수 있습니다. 반복 횟수를 지정하는 대표적인 문법은 다음과 같습니다.Exp{n} — 표현식 exp가 정확히 n번 나타나야 합니다.Exp{n} — 표현식 exp가 최소 n번 이상 나타나야 합니다.Exp{n,m} — 표현식 exp가 최소 n번, 최대 m번 사이로 나타나야 합니다.예제 1: 정확히 5글자인 단어 매칭하기아래 예제는 \w{5} 패턴을 사용하여 입력 문자열 중 정확히 5개의 단어 문자(영문자
Java 정규식에서 제공하는 논리 OR 연산자 |를 사용하면 주어진 두 표현식 중 어느 하나와 일치하도록 패턴을 만들 수 있습니다.예를 들어, 하나의 정규식이 둘 이상의 표현식과 일치해야 하는 경우, 각 표현식을 | 기호로 구분하여 작성하면 됩니다.예제 1: 특정 문자열로 시작하거나 끝나는 경우 매칭다음 예제는 입력 문자열이 hello로 시작하거나 bye로 끝나는지 확인하는 정규식입니다.import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.P
정규 표현식에서 단어 문자(word character)란 영어 알파벳 대소문자(A~Z, a~z)와 숫자(0~9), 그리고 밑줄(_)을 의미합니다. Java에서는 메타 문자 \w를 사용해 이러한 단어 문자들을 손쉽게 매칭할 수 있습니다.참고로 \w는 [a-zA-Z0-9_]와 동일한 의미를 가지며, 반대로 단어 문자가 아닌 문자를 찾으려면 \W(대문자)를 사용하면 됩니다.예제 1: 문자열 시작 부분의 단어 문자 5개 매칭하기아래 예제는 사용자로부터 입력받은 문자열이 단어 문자 5개로 시작하는지 확인하는 코드입니다. 정규식 ^\w{5}에
영문 알파벳(대소문자 모두)과 숫자(0~9)를 제외한 나머지 모든 문자는 단어가 아닌 문자(non-word character)로 간주됩니다. Java 정규식에서는 메타 문자 \W를 사용하면 이러한 문자들을 간편하게 매칭할 수 있습니다.메타 문자 \W란?\W는 [^a-zA-Z0-9_]와 같은 의미로, 알파벳·숫자·밑줄(_)을 제외한 특수 기호나 공백 등에 해당합니다. 반대로 소문자 \w는 단어 문자(word character), 즉 알파벳과 숫자, 밑줄을 매칭하는 데 사용됩니다.예제 1: Pattern과 Matcher 클래스 활용하기
자바 정규식에서 메타문자 \s는 문자열 내의 모든 공백 문자(스페이스, 탭, 줄바꿈 등)와 일치합니다. 이 메타문자를 활용하면 문자열에 포함된 공백의 개수를 세거나, 공백을 완전히 제거하는 등 다양한 작업을 손쉽게 처리할 수 있습니다.예제 1: 문자열에서 공백 개수 세기아래 예제는 사용자로부터 문자열을 입력받은 후, \s 패턴을 사용해 공백 문자가 몇 번 나타나는지 계산합니다.import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern
Java 정규식에서는 메타 문자 \S를 사용하여 공백이 아닌(non-whitespace) 문자를 매칭할 수 있습니다.대문자 \S는 공백, 탭, 줄바꿈 등 모든 화이트스페이스를 제외한 단일 문자와 일치합니다. 반대로 소문자 \s는 화이트스페이스 자체를 의미하므로, 두 메타 문자의 차이를 혼동하지 않도록 주의해야 합니다.예제 코드아래 예제는 사용자로부터 문자열을 입력받은 뒤, 정규식 \S를 적용하여 공백을 제외한 문자의 개수를 세어 출력합니다.import java.util.Scanner; import java.util.regex.Mat
Java에서 정규식(Regular Expression)을 활용하면 문자열 내의 숫자를 손쉽게 찾거나 검증할 수 있습니다. 숫자와 일치시키는 대표적인 방법은 메타 문자 \d를 사용하거나, 아래와 같은 문자 클래스 표현식을 사용하는 것입니다.[0-9]두 표현식은 기능적으로 동일하며, 0부터 9까지의 모든 숫자 한 자리와 매칭됩니다.예제 1: 문자열 내 숫자 개수 세기다음 예제는 사용자로부터 문자열을 입력받아, 정규식을 이용해 포함된 숫자의 개수를 세는 프로그램입니다.import java.util.Scanner; import java.u
Java 정규식에서 숫자가 아닌 문자(non-digit)를 찾으려면 메타 문자 \D를 사용하면 됩니다. \D는 숫자(0~9)를 제외한 모든 문자와 일치하며, 이를 활용하면 문자열에서 숫자가 아닌 문자의 개수를 세거나, 입력값이 특정 조건에 맞는지 검증할 수 있습니다.예제 1: 숫자가 아닌 문자 개수 세기다음 예제는 사용자로부터 문자열을 입력받아, 그 안에 포함된 숫자가 아닌 문자의 개수를 세는 프로그램입니다.import java.util.Scanner; import java.util.regex.Matcher; import java.
Java 정규식에서는 메타 문자 \A를 사용하여 입력 문자열의 시작 부분과 일치시킬 수 있습니다. 이 메타 문자는 전체 입력의 맨 앞에서만 패턴을 검사하므로, 문자열이 특정 형식으로 시작하는지 확인할 때 유용합니다.참고로 \A는 줄바꿈과 상관없이 항상 전체 입력의 시작만 가리키며, 여러 줄 모드(MULTILINE)에서도 동작이 변하지 않는다는 점에서 ^와 차이가 있습니다.예제 코드import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Patte
Java 정규 표현식에서는 메타 문자 \z를 사용하여 입력의 끝을 일치시킬 수 있습니다. 이 메타 문자는 전체 입력 시퀀스의 가장 마지막 위치에만 대응하기 때문에, 문자열이 특정 패턴으로 끝나는지 검사할 때 매우 유용합니다.참고로 $는 줄바꿈 직전까지도 일치할 수 있는 반면, \z는 오직 입력의 최종 끝에만 일치한다는 차이가 있습니다.예제 코드import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Exam
Java 정규식에서는 메타 문자 \b를 사용하여 단어 경계(word boundary)를 일치시킬 수 있습니다.단어 경계란?단어 경계란 단어 문자(알파벳, 숫자, 밑줄)와 비단어 문자 사이의 위치를 의미합니다. 즉, \b는 실제 문자가 아닌 위치를 나타내는 앵커(anchor) 역할을 하며, 단어의 시작 또는 끝 지점을 찾을 때 유용하게 사용됩니다.예제 1: 단어 경계 개수 세기다음 예제는 입력받은 문자열에서 \b가 일치하는 횟수, 즉 단어 경계의 개수를 계산합니다.import java.util.Scanner; import java.u
Java 정규 표현식(Regular Expression)에서 메타 문자 \B를 사용하면 단어 경계가 아닌(non-word boundary) 위치를 매칭할 수 있습니다. 일반적으로 \b가 단어 문자와 비단어 문자 사이의 경계, 즉 단어의 시작과 끝을 의미한다면, \B는 그 반대로 두 단어 문자가 연속해서 이어지는 지점, 즉 단어의 내부를 가리킵니다. 예제 1 – 단어 경계가 아닌 위치 개수 세기 import java.util.Scanner; import java.util.regex.Matcher; import java.util.reg
java.util.regex.Matcher 클래스는 다양한 매칭(match) 연산을 수행하는 엔진 역할을 하는 클래스입니다. 이 클래스는 별도의 생성자가 없으며, java.util.regex.Pattern 클래스의 matcher() 메서드를 통해 객체를 생성하거나 얻을 수 있습니다. Matcher 클래스의 start() 메서드는 매칭된 문자의 시작 인덱스(위치)를 반환합니다. 정규식으로 문자열을 검색할 때 해당 문자가 몇 번째 위치에서 발견되었는지 확인할 수 있어 매우 유용합니다. start() 메서드 동작 방식 정규 표현식에서 대
java.util.regex.Matcher 클래스는 다양한 매칭(match) 연산을 수행하는 엔진을 나타냅니다. 이 클래스는 별도의 생성자가 없으며, java.util.regex.Pattern 클래스의 matcher() 메서드를 통해 객체를 생성하거나 얻을 수 있습니다.Matcher 클래스의 end() 메서드는 현재 객체가 나타내는 마지막 매칭 결과의 끝 위치(오프셋)를 반환합니다. 즉, 마지막으로 일치한 문자 바로 뒤의 인덱스 값을 알려줍니다.정규 표현식에서 하위 표현식 [...](문자 클래스)은 대괄호 안에 지정된 문자들을 입력
Java에서 정규표현식을 활용한 문자열 검색은 매우 강력한 기능입니다. java.util.regex.Matcher 클래스는 패턴과 입력 문자열 간의 다양한 매칭(match) 연산을 수행하는 엔진 역할을 합니다.Matcher 객체란?Matcher 클래스는 별도의 public 생성자가 없습니다. 대신 java.util.regex.Pattern 클래스의 matcher() 메서드를 호출하여 Matcher 객체를 생성할 수 있습니다.find() 메서드의 동작 원리Matcher 클래스의 find() 메서드는 현재 Matcher 객체가 가진 패
Java Matcher 클래스란?java.util.regex.Matcher 클래스는 정규 표현식을 기반으로 다양한 매칭 작업을 수행하는 엔진 역할을 하는 클래스입니다. 이 클래스에는 별도의 생성자가 없으며, java.util.regex.Pattern 클래스의 matcher() 메서드를 호출하여 Matcher 객체를 생성할 수 있습니다.Matcher 클래스의 matches() 메서드는 대상 문자열이 정규 표현식으로 표현된 패턴과 일치하는지 검사합니다. 문자열이 패턴과 일치하면 true를 반환하고, 일치하지 않으면 false를 반환합니
JSON 데이터를 다룰 때 특정 필드의 값을 손쉽게 찾아야 하는 경우가 자주 있습니다. Jackson 라이브러리의 com.fasterxml.jackson.databind.node.ObjectNode 클래스를 사용하면 JSON 객체 구조를 그대로 매핑하여 원하는 값을 간편하게 조회할 수 있습니다.특히 get() 메서드를 활용하면 JSON 파일 내부에서 특정 값을 검색할 수 있으며, 이 메서드는 객체 노드(Object Node)에서 지정된 필드 이름에 해당하는 값을 반환하는 역할을 합니다. 필드 존재 여부를 먼저 확인하는 has() 메
java.util.regex 패키지의 Pattern 클래스는 정규 표현식(regular expression)이 컴파일된 형태를 나타내는 클래스입니다. 이 클래스가 제공하는 compile() 메서드는 정규 표현식을 담은 문자열을 인자로 전달받아, 이를 컴파일한 Pattern 객체를 반환합니다. 컴파일된 Pattern 객체는 matcher() 메서드를 통해 Matcher 객체를 생성하고, 이 Matcher를 이용해 입력 문자열과 정규 표현식의 매칭 여부를 검사할 수 있습니다. compile() 메서드 기본 예제 다음 예제는 사용자로부터