Study/java

[Java] 정규식으로 숫자 포함 여부 체크 방법

 

정규식을 사용해서 문자열에 숫자가 포함되어있는지 여부를 체크하는 방법입니다.

 

정규식 숫자 포함 여부 체크 방법

정규식으로 숫자가 포함되어있는지 체크하려면 다음과 같은 패턴을 사용하면 됩니다.

 

 

\d: 숫자(digit)를 의미하는 정규식 패턴입니다. [0-9]와 동일한 의미를 갖습니다.

\d+: 하나 이상의 숫자를 의미합니다.

 

자바에서 정규식을 사용하여 문자열에 숫자가 포함되어있는지 확인하는 코드입니다.

String containNumberRegex = ".*\\d.*";
String containNumberString = "aaaaaa123aaaaaa";
String notContainNumberString = "aaaaaaaaaaaa";

System.out.println("containNumberString.matches(containNumberRegex) = " + containNumberString.matches(containNumberRegex));
System.out.println("notContainNumberString.matches(containNumberRegex) = " + notContainNumberString.matches(containNumberRegex));

정규식 숫자 포함 여부 체크 결과
정규식 숫자 포함 여부 체크 결과

Java String 클래스의 matches 메소드를 사용해서 문자열에 숫자가 포함되어있는지 체크하는 예제입니다.

 

각 정규식의 의미는 다음과 같습니다.

 

 

 

 

 

 

각 정규식의 의미

숫자 포함 여부 체크에 사용된 정규식 .*\d.*의 의미는 다음과 같습니다.

.*

.은 임의의 문자 하나를 의미합니다. 

임의의 문자란 줄바꿈 문자를 제외한 모든 문자를 의미합니다.

*은 바로 앞의 문자가 0회 이상 반복됨을 의미합니다. 

그래서 .*은 임의의 문자가 0회 이상 반복되는 패턴입니다.

 

뒤에도 동일한 패턴이 존재합니다.

뒤쪽에 있는 .*의 의미는 문자열의 끝까지 임의의 문자가 0회 이상 반복된다는 의미입니다.

다르게 말하면, 문자열의 끝까지 어떤 문자든 있을 수 있고, 없을 수 있다는 의미입니다.

 

\d

\d는 0부터 9까지의 숫자 하나를 의미합니다. 

자바에서 \d를 사용하려면 이스케이프 처리를 해야합니다.

그래서 예제 코드에서는 \\d를 사용하였습니다.

 

.*\d.*의 의미

위에서 설명한 내용을 종합하면 다음과 같습니다.

1. 문자열의 시작부터 임의의 문자가 0개 이상 올 수 있고

2. 그 다음에 숫자 하나가 반드시 존재하며

3. 문자열의 끝까지 임의의 문자가 0개 이상 올 수 있습니다.

 

그래서 종합하면, .*\d.*의 의미는 주어진 문자열에서 숫자가 하나라도 포함되어있는지를 확인하는 정규식입니다.

 

 

 

읽으면 좋은 글

[Java] String - matches : 정규식 일치 여부

 

[Java] String - matches : 정규식 일치 여부

Java String 클래스의 matches 메소드는 문자열이 정규 표현식과 일치하는지 여부를 판별합니다.주로 텍스트 검색, 데이터 추출과 같은 다양한 상황에서 사용됩니다.matches메소드는 정규식을 사용하

priming.tistory.com