CL-PPCRE Unicode Свойство
Я пытаюсь найти решение этого простого кода Perl с помощью библиотеки CL-PPCRE:
if (/\p{Space}/){
print "This string has some spaces\n";
}
Я новичок в CL-PPCRE и попробовал:
(scan "\\p{\\#Space}" "The String has some white spaces")
; Я получил сообщение о том, что свойство #/Space не существует.
Как я могу выполнить эквивалент?
2 ответа
Perl регулярное выражение /\p{Space}/
соответствует больше, чем просто "". cf \ p {} документы
Один из подходов состоит в том, чтобы просто использовать \s
выражение:
(cl-ppcre:scan "\\s" (format nil "hi~Cthere" #\return))
Чтобы использовать весь класс Unicode Space:
(ql:quickload :cl-unicode)
(cl-ppcre:scan "\\p{Space}" (format nil "hi~Cthere" #\return))
См. Свойства Unicode в документах CL-PPCRE.
cl-ppcre
Библиотека не требует от вас (по крайней мере, места) использовать какую-либо специальную константу.
(if (cl-ppcre:scan " " "alle meine entchen")
(FORMAT T "Does have spaces~%")
(FORMAT T "Does not have spaces~%"))
> Does have spaces
(if (cl-ppcre:scan " " "allemeineentchen")
(FORMAT T "Does have spaces~%")
(FORMAT T "Does not have spaces~%"))
> Does not have spaces
сделает свое дело.