lisp中的字符串和字符串操作

字面量

引号

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

lisp中的字符串和字符串操作的相关文章

Xcode中修改变量名、类名及字符串的替换操作

Xcode中修改变量名.类名及字符串的替换操作         在做iOS开发代码优化的工作时,优化代码结构之前,我们应该先整理好工程的外貌,将文件和类的命名进行规范,在Xcode中为我们提供了方便而强大的名称修改功能. 第一步:修改类名         将鼠标点击放在类的名称上,选择Xcode工具栏中的edit->refactor->rename: 之后,将类名更改为我们需要的模式点击preview,记得将下面的关联文件勾选: Xcode会为我们检测出需要更改的地方,浏览无误后点击save.

Python中字符串的常见操作技巧总结_python

本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-characte

教你如何使用分组密码对shellcode中的windows api字符串进行加密

本文讲的是教你如何使用分组密码对shellcode中的windows api字符串进行加密, 介绍 字符串/模式匹配算法是当前最流行和最简单的检测shellcode方法.原理很简单:所有代码都有其独特的特征,可以根据这种特征去在内存中验证.即使没有事先分析shellcode,我们也可以得到一些有用的变量,或者至少看起来它是一串可疑代码,需要进一步分析. 我提到的有用变量是指API字符串以及hash值,它们已经在检测恶意代码历史上使用了20多年.如果想要绕过这种检测方法,编写shelcode过程中

c 字符串输入-c语言中如何动态输入字符串而不需要事先定义字符数组大小

问题描述 c语言中如何动态输入字符串而不需要事先定义字符数组大小 如标题 c语言中如何动态输入字符串而不需要事先定义字符数组大小或为字符指针分配空间 解决方案 你这个要求实际使用度太低,或者说,完全没有必要非要这样去想. 解决方案二: c语言中字符串与字符数组c语言中的字符数组与字符串C语言 字符数组和字符串 解决方案三: 你这样定义好了char *p; 解决方案四: #include #include #include #define Step 10 //空间增加的步长. char * get

查找目录下的所有文件中是否含有某个字符串 linux

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式    (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成.   (2)基本元字符集及其含义       ^ :只匹配行首.   如^a 匹配以a开头的行abc,

JavaScript的String字符串对象常用操作总结_javascript技巧

创建String对象方式声明:String对象的方法也可以在所有基本字符串值中访问到. 调用构造函数String(): var str = new String(); var str = new String('hello world');//初始化str,str.length = 11; String访问及查找的方式 1.访问(通过索引) (1)charAt()或[]1个参数,参数为字符位置,返回字符 var strValue = new String('hello world'); cons

PHP中使用substr()截取字符串出现中文乱码问题该怎么办_php实例

在PHP程序开发中,经常会执行字符串的截取操作,比如输出信息列表时,标题不宜过长,打印文章摘要时,也要执行一系列的字符串截取操作.遇到这些需求时,我们经常会想到使用substr()方法来实现,substr()对全英文字符串的截取是比较适合的. 但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符"锯"成两半,造成断开的字符会把其后的..拉

php字符串与字符串操作教程详解

输出字符串 在PHP中,有四种方法输出字符串.echo结构可以一次输出多个值:print()只可以输出一个值:printf()可以格式化输出:print_r()可以输出数组,对调试很有好处.下面一一进行介绍. 1. echo echo 是PHP的一个关键字,它没有返回值.在写法上,它可以省略小括号.如下代码:  代码如下 复制代码 echo 'Test String'; echo('Test String'); 2. print print 也是PHP的一个关键字,它有返回值,一般返回true,

详解Java中的数组与字符串相关知识_java

Java数组的定义和使用 如果希望保存一组有相同类型的数据,可以使用数组. 数组的定义和内存分配 Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName; type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量.例如: int demoArray[]; int[] demoArray; 这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择