; FUNCTION GREP, str, strarray, sensitive=sensitive, exact=exact, index=index,$ exclude=exclude, start=start sz=size(str) dtype=sz(n_elements(sz)-2) sz=size(strarray) stype=sz(n_elements(sz)-2) IF (dtype ne 7) OR (stype ne 7) THEN BEGIN MESSAGE, 'Input parameter must be of string type.', /cont RETURN, '' ENDIF aa = strtrim(strarray,2) a = strtrim(str,2) start=KEYWORD_SET(start) exact=KEYWORD_SET(exact) IF NOT KEYWORD_SET(sensitive) THEN BEGIN aa = STRUPCASE(aa) a = STRUPCASE(a) ENDIF IF KEYWORD_SET(exclude) THEN BEGIN IF exact THEN index = WHERE(aa NE a) ELSE $ index = WHERE(STRPOS(aa, a) EQ -1) ENDIF ELSE BEGIN IF exact THEN index = WHERE(aa EQ a) ELSE BEGIN IF start then index=WHERE(STRPOS(aa,a) eq 0) ELSE $ index = WHERE(STRPOS(aa, a) NE -1) ENDELSE ENDELSE ;--------------------------------------------------------------------------- ; Make sure the returned values are of scalar type ;--------------------------------------------------------------------------- IF index(0) GE 0 THEN BEGIN IF N_ELEMENTS(index) EQ 1 THEN BEGIN index = index(0) RETURN, (strarray(index))(0) ENDIF ELSE RETURN, strarray(index) ENDIF ELSE BEGIN index = -1 RETURN, '' ENDELSE EN