IDE/IntelliJ IDEA
[정규식] 리팩터링 중 찾아바꾸기
나모찾기
2019. 7. 18. 15:41
정규식은 잘 배워두면 요긴하게 쓰일 경우가 많다.
Sublime Text
얼마전에 바이트 데이터를 0x 접두어를 붙여서 바꿔치기를 할 경우가 있었는데 이런 경우에 유용하게 썼다.
예를 들어 아래의 통신 데이터를 테스트 코드에서 사용하기 위해 byte[]로 만드려고 한다.
왠만한 텍스트 편집기라면 정규식 찾아 바꾸기가 지원된다.
이런 경우 두 자리의 숫자를 앞에 0x를 붙이고, 뒤에 콤마를 붙이면 된다.
Find: (.)(.)
Replace: 0x$1$2,
데모
IntelliJ IDEA
코드 리팩터링을 할 때도 유용하게 쓸 수 있다.
예를 들어 예외 클래스의 시그너처가 아래와 같이 바뀌었다고 하자. int 에서 HttpStatus enum으로
해당 값은 생성자를 통해 설정이 되는데, 생성자의 시그너처가 바뀌므로 이 예외를 생성하는 모든 곳을 바꿔야 한다.
이럴 경우도 정규식을 이용하면 유용하게 바꿀 수 있다.
아래와 같이 바꿔야 되는 것이 enum 값에 따라 여러가지라서 단순 찾아 바꾸기를 하려면 바꾸는 값의 개수만큼 replace를 해야 한다.
이럴 때 아래 정규식을 이용하면 한번에 바꿀 수 있다.
Find: Exception\(HttpStatus\.([A-Z_]+)\.value\(\)
Replace: Exception\(HttpStatus\.([A-Z_]+)\.value\(\)
도구를 잘 쓰면 시간을 절약해준다.