JAVA
#1. 정규식
MinsooLee
2021. 8. 30. 21:04
1. 정규식(Regular Expressions)이란?
- 문자열에 어떤 패턴의 문자들이 있는지 찾는데 도움을 줌
- 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
- 줄여서 Regex라고도 함
- String 함수들과 함께 사용: s.matches(regex) / s.split(regex) / s.replaceAll(regex)
2. 정규식 표현방법
예시) String s = "abc de fg
Regular Expression | Description | 예시 |
^ | 문자열의 시작을 의미 | s.replaceAll("^a", "*") : "*bc de fg |
$ | 문자열의 종료를 의미 | s.replaceAll("g$", "*") : abc de f* |
. | 문자 1개를 의미 | s.replaceAll("a.", "*") : *c de fg |
[...] | [] 안의 한 문자 또는 문자집합 | s.replaceAll("[ab]", "*") : **c de fg |
[...][...] | []안의 문자들의 조합 - 1문자로 취급 | s.replaceAll("[a][b]", "*") : *c de fg |
[.. - ..] | 문자의 집합일 경우 -로 범위 지정 | s.replaceAll("[a-d]", "*") : *** *e fg |
[^...] | []안의 문자(혹은 문자집합)을 제외 | s.replaceAll("[^abc ]", "*") : abc ** ** |
A|B | A 또는 B | s.replaceAll("a|g", "*") : *bc de f* |
* | * 앞의 문자 반복 | ^[a-zA-Z]*$*: 문자만 허용 |
- [ab]는 a, b를 각각 한 문자로 취급하여 *가 두 개가 나오지만, [a][b]는 ab를 한 문자로 취급하여 *가 한 개가 나옴
- [^...]는 공백도 문자로 취급함 -> 예시에서 [^abc ]가 아닌 [^abc]인 경우 abc******로 나옴
* 이 외의 정규표현식은 계속 추가할 예정