개발기록
[Java] 문자열 특정 패턴 추출/제거 본문
프로그래밍을 하는데 있어서 문자열을 다양하게 처리할 때가 있는데, 특정 문자열만 남기거나 제거할 수 있도록 정규표현식을 통해 사용하는 방법을 알아보도록 한다.
1) 숫자
숫자만 제거 / 숫자제외 나머지 항목 제거
String str = "Hi, I am 20 years old.";
str.replace("[0-9]", ""); // Hi, I am years old.
str.replace("[^0-9]", ""); // 20
/*
* 위 코드 수행결과를 보면 알 수 있듯이 숫자는 [0-9]로 표현하며,
* ^는 !(not)과 동일한 양상을 띄운다.
*/
2) 영어
대문자 제거
String str = "I Live In South Korea.";
str.replaceAll("[A-Z]", ""); // ive n outh orea.
소문자 제거
String str = "I Live In South Korea.";
str.replaceAll("[a-z]", ""); //I L I S K.
대소문자 모두 제거
String str = "Do not speak English.";
str.replaceAll("[a-zA-Z]", ""); // .
str.replaceAll("[A-z]", ""); // .
str.replaceAll("[a-Z]", ""); // PatternSyntaxException 에러 발생,
// []괄호 안에는 index가 작은순서 -> 큰 순서로 가야 하는데
// a의 index(ascii코드)가 Z의 index보다 커서 생기는 오류
3) 한글
자음 제거
String str = "고구마엔 ㄱ이 많네";
str.replaceAll("[ㄱ-ㅎ()]", ""); // 고구마엔 이 많네
str.replaceAll("[ㅎㄷㄱ)(]", ""); // 고구마엔 이 많네
//범위 지정하는것이 아니라 나열식일때는 자음 순서와 관계없다.
모음 제거
String str = "이제 퇴근하고 집에 가볼까ㅏㅏㅏ?";
str.replaceAll("[ㅏ-ㅣ]", ""); //이제 퇴근하고 집에 가볼까?:
자모음 모두 제거
String str = "ㅈㅈ집에 좀 가즈아ㅏㅏ";
str.replaceAll("[ㅈㅏ]", ""); // 집에 좀 가즈아
str.replaceAll("[ㄱ-ㅣ]",""); // 집에 좀 가즈아
str.replaceAll("[ㅣ-ㄱ]",""); // 마찬가지로 java.util.regex.PatternSyntaxException 에러 발생
한글 제거
String str = "ㄱㄴㄷㄹㅏㅑㅓㅕ가냐더려";
str.replaceAll("[가-힣]", ""); // ㄱㄴㄷㄹㅏㅑㅓㅕ
str.replaceAll("[ㄱ-ㅎ가-힣]", ""); // ㅏㅑㅓㅕ
str.replaceAll("[ㅏ-힣]", ""); // ㄱㄴㄷㄹ
str.replaceAll("[ㄱ-힣]", ""); // 모두 제거
'JAVA' 카테고리의 다른 글
[Spring Framework] Bean (0) | 2020.07.15 |
---|---|
[JDBC] Persistance Framework 관련 (0) | 2020.07.09 |
Webjar (0) | 2020.07.09 |
@Controller와 @RestController의 차이 (0) | 2020.07.09 |
[Java] 문자열->정수 형변환 (0) | 2020.03.24 |