특정 문자열 사이의 문자열 치환하기(with java 정규식) 본문
특정 문자열 사이의 문자열 치환하기(with java 정규식)
- 2021. 1. 29. 10:43
반응형
자바의 정규식을 이용하여 문자열을 찾거나 치환 또는 제거 등을 손쉽게 처리가 가능하다.
정규식 표현(Regular Expression)이란?
표현식 | 설명 |
^ | 문자열 시작 |
$ | 문자열 종료 |
. | 임의의 문자 [단 ‘'는 넣을 수 없습니다.] |
* | 앞 문자가 0개 이상의 개수가 존재할 수 있습니다. |
+ | 앞 문자가 1개 이상의 개수가 존재할 수 있습니다. |
? | 앞 문자가 없거나 하나 있을 수 있습니다. |
[] | 문자의 집합이나 범위를 표현합니다. -기호를 통해 범위를 나타낼 수 있습니다. ^가 존재하면 not을 나타냅니다. |
{} | 횟수 또는 범위를 나타냅니다. |
() | 괄호안의 문자를 하나의 문자로 인식합니다. |
| | 패턴을 OR 연산을 수행할 때 사용합니다. |
\s | 공백 문자 |
\S | 공백 문자가 아닌 나머지 문자 |
\w | 알파벳이나 문자 |
\W | 알파벳이나 숫자를 제외한 문자 |
\d | [0-9] 숫자 |
\D | 숫자를 제외한 모든 문자 |
(?i) | 대소문자를 구분하지 않습니다. |
이제 진짜 하고 싶은 특정 문자열 사이의 문자열 치환하기
아래와 같은 문자열이 있을경우, 특정 문자 사이에 있는 값을 모조리 바꿔야 하는 상황이 발생한다.
String sample = "안녕하세요? 고객님께서 주문하신 {상품1}이/가 고객님의 집에 잘 도착하셨는지요? \n
만약 {상품2}이/가 도착하지 않았다면 배송 진행상태를 확인바랍니다.";
ㄴㄹ;
위의 정규식을 잘 활용한다면 한번에 해결이 가능하다.
코딩예시
sample = sample.replaceAll("[{](.*?)[}]", "사과");
결과
"안녕하세요? 고객님께서 주문하신 {사과}이/가 고객님의 집에 잘 도착하셨는지요? \n
만약 {사과}이/가 도착하지 않았다면 배송 진행상태를 확인바랍니다."
반응형
'프로그램 > JAVA' 카테고리의 다른 글
pom.xml에서 Failed to transfer 501 에러 발생시 (0) | 2021.02.26 |
---|---|
spring websocket (polling, Handshake 과정, sockjs, webSocketHandler, 예제) (0) | 2021.02.05 |
Apache Web Server에서 docroot 쪽 폴더 중 manual 폴더가 인지 되지 않을때 (0) | 2021.01.20 |
spring:message 메시지 properties 사용 (0) | 2021.01.19 |
maven에서 repository에 settings.xml이 없을 때 (0) | 2021.01.18 |
RECENT COMMENT