문자열 다루는 기능들을 조금 더 검토하시면 유용한 기능들이 있습니다.
1. STRSPLIT() 함수는 입력 문자열을, 구문자 문자열을 기준으로 끊어냅니다.
2. 정규식(Regular Expression) 이라는 게 있습니다. 이 것만 가지고 책 한권 분량 나오지만, 유용한 거 몇개 만 배우시면 쓸모가 꽤 있습니다. 예를 들어 [0-9] 는 0,1,2,3,4,5,6,7,8,9 중 하나를 의미하고, +는 바로 앞의 문자가 하나 또는 여러개가 연속해서 등장하는 것을 의미합니다. 그래서 [0-9]+ 는 숫자가 뭉쳐있는 곳을 의미합니다.
3. STRJOIN() 함수는 입력 문자열 배열 사이사이에 구분자 문자열을 끼워 넣어 하나의 문자열로 연결합니다.
아래 예제를 보십시오.
IDL> a=’A_DDE_123_DEF13QP45AV’
IDL> splt=strsplit(a, ‘[0-9]+’, /REGEX, /EXTRACT)
IDL> print, splt
A_DDE_ _DEF QP AV
IDL> print, strjoin(splt)
A_DDE__DEFQPAV
a 문자열을 숫자가 있는 부분을 구분자라고 생각하고 끊어냅니다. /REGEX 는 구분자 문자열로 제공되는 것이 “정규식”이라는 것을 의미하고, 끊어낸 각각을 문자열 배열로 리턴하라는 의미로 /EXTRACT 가 사용되었습니다.
그 결과는 보시다 시피 끊어져 나왔구요. 이걸 연결하면 구분자(이 예제에서는 숫자 덩어리들)만 쏙 빠지는 결과가 됩니다.