CAFE

◆ LISP 연구분석

[[함수정리]]WCMATCH 함수 들여다보기

작성자젤로젤로|작성시간11.04.07|조회수1,407 목록 댓글 13

안녕하세요. 

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 감사합니다...ㅎ
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼