※ 말머리 필수 (말머리 누락시 통보없이 게시 글이 삭제될 수 있습니다.)
※ 회원정보는 최소한 '운영진 공개'로 지정
※ 캐드나 리습 관련 질문일 경우 반드시 캐드 종류와 버전 명기 (ex> 오토캐드2022 / 윈10 64비트)
<캐드 / 윈도우 종류 및 버전 : / >
※ 질문은 최대한 성의있고 자세하게 (답변자가 되묻게 질문하지 말아주세요.)
※ 이외는 자유롭게 글 남겨 주시면 됩니다.
안녕하세요
카페 글을 읽다 보니 문자와 숫자가 있을 경우
(예) test123 숫자만 추출 하는 프로그램은 많은데
혹시 문자만 추출 하는 방법도 있을까요?
달수님이 올려주신 프로그램
(defun mrStr2int (s / cn n c)
(setq cn 1 n "")
(repeat (strlen s)
(setq c (ascii (substr s cn 1)))
(if (or (< 47 c 58)(= c 45)(= c 46))
(setq n (strcat n (chr c)))
)
(setq cn (1+ cn))
) n
)
이프로그램을 해보니 숫자만 잘 읽어 오네요
첫댓글 https://github.com/qudrnr/lisp/blob/main/function-list/String.lsp 에서 qr-string-removeNumber 검색해보세요
병국님 안내해주신 자료로 하니까 문자만 추출이 되네요
좋은 정보 감사 드립니다
https://cafe.daum.net/archimore/ESJj/25244
페이지가 넘어가지도 않는곳에 같은 질문과 답이
죄송합니다 제가 미쳐 보질 못했나 봅니다
(defun mrStr2int (s *op / cn n m c) ; *op = 1 ;숫자만, *op2 = 2 ; 문자만
(setq cn 1 n "" m "")
(repeat (strlen s)
(setq c (ascii (substr s cn 1)))
(if (or (< 47 c 58) (= c 46))
(setq n (strcat n (chr c)))
(setq m (strcat m (chr c)))
)
(setq cn (1+ cn))
)
(cond
((eq *op 1) n)
((eq *op 2) m)
)
)
;_$ (mrStr2int "test-123" 1)
;"123"
;_$ (mrStr2int "test-123" 2)
;"test-"