find/Replace 창에서 Reqular expressions를 이용하여 일괄적으로 문자열 변경을 시도해 보았다.
다음 원본 쿼리의 FROM절 다음에 오는 테이블 명 앞 뒤로 back quote(`)를 추가해 주는 것이다.
원본 쿼리
SELECT DisplayInventoryId
FROM db.DisplayInventories DI
SELECT shopId
FROM db.DisplayInventories DI
변경 쿼리
SELECT DisplayInventoryId
FROM `db.DisplayInventories` DI
SELECT shopId
FROM `db.DisplayInventories` DI
문자열 패턴 검색을 위해서 다음과 같은 정규표현식을 사용했다.
(db.[a-zA-Z]+)
위의 정규표현식을 풀이하면
db. : db. 의 문자열 탐색
[a-zA-Z]+ : 알파벳 대소문자 1개 이상
( ) : capturiing group을 의미 <- 어떤 의미인지는 아래 내용을 보면 알 수 있음
자~ 이제 정규표현식을 이용해서 특정한 규칙을 가진 문자열을 탐색하였다.
이제는 탐색된 문자열을 replace하는 정규표현식을 생성해야 한다.
`\1`
\1 : 첫 번째 capturing group을 의미한다. 즉, 위의 정규표현식에서 ( ) 로 둘러싸여 있는 부분의 문자열을 의미한다. 필요에 따라서 여러 개의 capturing group을 생성하고 \2 \3 과 같이 사용할 수 있다.
정규표현식은 알면 알수록 노가다가 준다는 것을 깨닫는다.
정규표현식표좀 담아갈게요..^