수색…


패턴 일치를 사용하여 캡처 된 그룹 바인딩

패턴 일치 라이브러리 퀴즈는 캡처 된 그룹을 패턴 일치를 통해 바인딩 할 수있는 시스템 trivia.ppcre 를 제공합니다

(trivia:match "John Doe"
  ((trivia.ppcre:ppcre "(.*)\\W+(.*)" first-name last-name)
   (list :first-name first-name :last-name last-name)))

;; => (:FIRST-NAME "John" :LAST-NAME "Doe")
  • 참고 : 라이브러리 Optima는 시스템에 유사한 기능을 제공합니다. optima.ppcre

CL-PPCRE로 레지스터 그룹 바인드

CL-PPCRE:REGISTER-GROUPS-BIND 는 문자열을 정규 표현식과 비교하고 일치하는 경우 정규 표현식의 등록 그룹을 변수에 바인드합니다. 문자열이 일치하지 않으면 NIL 이 반환됩니다.

(defun parse-date-string (date-string)
  (cl-ppcre:register-groups-bind
      (year month day)
      ("(\\d{4})-(\\d{2})-(\\d{2})" date-string)
    (list year month day)))

(parse-date-string "2016-07-23") ;=> ("2016" "07" "23")
(parse-date-string "foobar")     ;=> NIL
(parse-date-string "2016-7-23")  ;=> NIL


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow