안녕하세요.
LISP 책보고 공부하다가 예전에 그냥 대충보고 지나갔었던 WCMATCH 라는 함수가 엄청나게 유용하다는걸 알고서
책에 있는 내용을 옮겨봅니다. 모르셨던분도 저와 함께 공부해요. ^_^
형식 : (wcmatch string pattern)
- string : 문자열
- pattern : 검색할 패턴의 문자열
- 리턴값 : 문자열과 패턴이 일치하면 T를 리턴하고 아니면 nil을 리턴합니다.
pattern 종류
| 글 자 | 정 의 |
| # (pound) | 하나의 숫자 일치 |
| [...] | [.] 내부 한 글자 일치 |
| @ (at) | 하나의 알파벳 일치 |
| [~...] | [.] 내부 한 글자 제외 일치 |
| . (period) | 알파벳, 숫자제외 일치 |
| - (hyphen) | 글자 범위 지정 |
| * (asterisk) | 임의의 글자순서 일치 |
| , (comma) | 두 패턴 구분 |
| ? (question mark) | 하나의 글자 일치 |
| ` (reverse quote) | 특수글자 제외 |
| ~ (tilde) | 패턴을 제외한 것 일치 |
예제)
(wcmatch "Name" "N*") : 문자열이 N으로 시작하는지 검사.
(wcmatch "Name" "???,~*m*,N*") : 3가지 패턴을 comma 로 구분하였네요. 3가지중 하나라도 일치하면 T를 리턴합니다. ??? 는 세개의 문자인지 검사, ~*m* 는 문자열에 m이 포함되어 있지 않는지 검사, N* 는 N으로 시작하는지 검사를 합니다.
"STR[1-38]" : STR1 , STR2 , STR3 그리고 STR8 이라는 말입니다.
"[A-Z]" : 대문자 모두를 의미합니다.
혹 고수님들께서 좀더 적절한 예문들을 업데이트 하여 주시기를 부탁드리며... 더이상은 이해하기 어렵습니다. ^-^
상기 내용중 틀린것은 지적해주세요.
다음검색
댓글
댓글 리스트-
작성자빡깡스 작성시간 12.05.07 감사감사~~
-
작성자처음처럼11 작성시간 12.08.07 ^^
-
작성자최재영1 작성시간 16.09.17 오~~~감사합니다!! 왜 제책에는 저함수가 안나오는걸까요?ㅋㅋㅋㅋ 너무 감사합니다
-
작성자예성 작성시간 17.05.08 (wcmatch "123,ABC" "###*") : T
#은 숫자 하나만 비교합니다.
(wcmatch "123,ABC" "*@@@") : T
@은 알파벳 하나만 비교합니다.
(wcmatch "123,ABC" "123,ABC") : nil
,는 구분기호입니다.
--> (wcmatch "123,ABC" "123`,ABC") : T
특수기호인 ,를 비교하기 위해 앞에 `를 붙여 비교하였습니다.
(wcmatch "123,ABC" "[123][1-3][0-9]`,[ABC][A-C][A-z]") : T
(wcmatch "123,ABC" "[~23A-C][~13A-C][~12A-C]`,[~1-3BC][~1-3AC][~1-3AB]") : T
괄호의 첫 문자가 ~일 경우엔 지정한 문자 제외, 아니라면 지정한 문자만 포함합니다.
- 문자는 괄호 안에서만 사용 가능하며 범위를 지정하면 ascii 값 범위에 따라서 비교합니다. -
작성자지화자 작성시간 19.01.19 감사합니다...ㅎ