字面量
引号
lisp使用双引号表示字符串字面量
CL-USER> "abc"
"abc"
转义
如果要包含双引号用'\'转义
CL-USER> "a\"bc"
"a\"bc"
如果包含'\'本身,也需要'\' 转义
CL-USER> "a\\bc"
"a\\bc"
插值
插入变量
第三方cl-interpol包可以把一个变量的值插入字符串中
1.安装
(ql:quickload :cl-interpol)
2.开启插值语法
(cl-interpol:enable-interpol-syntax)
3.插入值
CL-USER> (let ((a 100)) #?"$(a)个")
"100个"
插入非可打印字符
cl-interpo不仅可以插入变量值,还可以插入非可打印字符
CL-USER> #?"\n"
"
"
CL-USER>
字符串操作
1.连接
CL-USER> (concatenate 'string "abc" "def")
"abcdef"
2.遍历字符串
CL-USER> (loop for c across "abcdefg" do (print c))
#\a
#\b
#\c
#\d
#\e
#\f
#\g
NIL
正则表达式
正则表达式需要第三方的包,下面以cl-ppcre为例
1.安装
(ql:quickload :cl-ppcre)
2.匹配
CL-USER> (cl-ppcre:scan-to-strings "((a)bc)" "abcdef")
"abc"
#("abc" "a")
参考
http://weitz.de/cl-interpol/#syntax
时间: 2024-09-13 19:12:24