2020. 12. 28. 17:20ㆍ프로그래밍 언어/Java
정규식 개요
정규표현식이 뭔지 먼저 살펴보도록 하겠습니다.
정규표현식은 간단하게 얘기하면 특정한 규칙을 갖는 문자열을 뜻합니다.
줄여서 정규식이라고 합니다.
문자열 분할할 때 여러 구분자를 사용하는 경우 |(파이프라인)을 사용하면 가능하다고 하였습니다.
|(파이프라인)은 정규표현식에서 or의 역할을 수행합니다.
- 다시 보고 오기 : 2020/12/21 - [Java] - [Java] 문자열 자르기 - 여러 구분자/특수기호 사용하기
정규식 예제
만약 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)
2020/12/16 - [Java] - [Java] 문자열 자르기 - split
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 문자열 자르기(추출) - 정규표현식(Pattern, Matcher) (0) | 2021.01.04 |
---|---|
[Java] 문자열 자르기 - char형 구분자 (0) | 2020.12.30 |
[Java] 문자열 자르기 - 여러 구분자/특수기호 사용하기 (0) | 2020.12.21 |
[Java] 문자열 자르기 - StringTokenzer (0) | 2020.12.17 |
[Java] 문자열 자르기 - split (0) | 2020.12.16 |