[Java] 문자열 자르기 - 정규표현식(split)

2020. 12. 28. 17:20Java

 

 

정규식 개요

정규표현식이 뭔지 먼저 살펴보도록 하겠습니다.

정규표현식은 간단하게 얘기하면 특정한 규칙을 갖는 문자열을 뜻합니다.

줄여서 정규식이라고 합니다.

 

문자열 분할할 때 여러 구분자를 사용하는 경우 |(파이프라인)을 사용하면 가능하다고 하였습니다.

|(파이프라인)은 정규표현식에서 or의 역할을 수행합니다.

 

- 다시 보고 오기 : 2020/12/21 - [Java] - [Java] 문자열 자르기 - 여러 구분자/특수기호 사용하기

 

[Java] 문자열 자르기 - 여러 구분자/특수기호 사용하기

여러 구분자로 문자열 자르기 문자열을 분할할 때 구분자(delimiter)를 여러 개 사용하는 경우가 있습니다. split 함수와 StringTokenizer 클래스를 사용하여 가능합니다. 먼저 split 함수부터 알아보도록

smartpro.tistory.com

정규식 예제

만약 0부터 9까지의 숫자를 구분자로 사용한다면 0|1|2|3|4|5|6|7|8|9 와 같이 써야 하는데

정규식으로 사용하면 간단하게 [0-9]로 표현할 수 있습니다.

즉, 구분자를 숫자로 하거나 알파벳 또는 한글로 구분하는 것이 정규식을 사용하면 가능합니다.

아래 정규식은 1글자만 인식합니다.

숫자 [0-9]
알파벳 대문자 [A-Z]
알파벳 소문자 [a-z]

 

샘플 문자열에서 숫자 한 글자를 기준으로 문자열을 자르는 예제입니다.

String str = "1aA2bB3cC";
String[] results = str.split("[0-9]");
for (int i = 0; i < results.length; i++) {
	System.out.println("results[" +i + "] = " + results[i]);
}

// 출력
results[0] = 
results[1] = aA
results[2] = bB
results[3] = cC

출력을 index 기준으로 설명하자면

- index 0 : 1 앞에 아무 것도 없으므로 공백이 나옵니다.

- index 1 : 1과 2 사이에 있는 aA를 자릅니다.

- 그 이후 숫자 사이의 알파벳만 추출합니다.

 

샘플 문자열에서 영소문자 한 글자 기준으로 문자열을 자르는 예제입니다.

String[] results = str.split("[a-z]");
for (int i = 0; i < results.length; i++) {
	System.out.println("results[" +i + "] = " + results[i]);
}

// 출력
results[0] = 1
results[1] = A2
results[2] = B3
results[3] = C

출력을 index 기준으로 설명하자면

- index 0 : a 앞에 있는 1을 출력합니다.

- index 1 : a과 b 사이에 있는 A2를 자릅니다.

- 그 이후 영소문자 사이의 문자들만 추출합니다.

 

숫자 1개 이상, 알파벳 1개 이상인 경우에는 뒤에 +를 붙여주시면 됩니다.

숫자 [0-9]+
알파벳 대문자 [A-Z]+
알파벳 소문자 [a-z]+

 

오늘은 정규식을 간단하게 알아보는 시간을 가졌습니다.

실제로 split 함수에서 정규식을 쓰는 경우는 많지 않습니다.

다음 글에서 원하는 문자패턴을 인식하여 추출하는 방식인 Patten, Matcher를 알아보도록 하겠습니다.

 

관련글 :

2021/01/04 - [Java] - [Java] 문자열 자르기(추출) - 정규표현식(Pattern, Matcher)

 

[Java] 문자열 자르기(추출) - 정규표현식(Pattern, Matcher)

문자열을 정해져있는 구분자가 아닌 문자열 패턴으로 인식해서 자르기 또는 추출을 할 수 있는 방법이 있습니다. 정규표현식(Regular expressions)을 이용한 방법으로 정규식이라고 부르기도 합니다.

smartpro.tistory.com

 

2020/12/16 - [Java] - [Java] 문자열 자르기 - split

 

[Java] 문자열 자르기 - split

지난 시간에는 index를 지정하여 문자열을 자르는 substring을 알아보았습니다. 이번 시간에는 특정 문자를 지정하여 여러 개의 문자열로 자르는 split을 알아보도록 하겠습니다. 문자열 사과, 배, 귤

smartpro.tistory.com

 

반응형