common-lisp
Регулярные выражения
Поиск…
Использование с сопоставлением с образцом для привязки захваченных групп
trivia.ppcre
шаблоны сопоставления шаблонов предоставляют систему 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