lisp 正则表达式示例

lisp正则表达式可以用多个第三方的包,cliki推荐是cl-ppcre这个包.在代码中写正则表达式可以用cl-interpol这个包方便转义

cl-interpol

如果要匹配一对括号不用cl-interpol,需要写成

"\\(\\)"

借助cl-interpol只需下面的写法

CL-USER> #?R"\(\)"
"\\(\\)"
CL-USER> (cl-ppcre:scan-to-strings #?R"\(\)" "()")
"()"
#()

cl-ppcre

scan-to-string

CL-USER> (cl-ppcre:scan-to-strings #?R"(abc)" "0123abcdef")
"abc"
#("abc")

scan

CL-USER> (cl-ppcre:scan #?R"(abc)" "0123abcdef")
4
7
#(4)
#(7)

do-scans

CL-USER> (cl-ppcre:do-scans (s e rs rg #?R"a(.)c" "a1c a2c a3c a4c")
       (format t "start:~a end:~a reg-start:~a reg-end:~a~%" s e rs rg))
start:0 end:3 reg-start:#(1) reg-end:#(2)
start:4 end:7 reg-start:#(5) reg-end:#(6)
start:8 end:11 reg-start:#(9) reg-end:#(10)
start:12 end:15 reg-start:#(13) reg-end:#(14)
NIL

do-matches-as-strings

CL-USER> (cl-ppcre:do-matches-as-strings (m  #?R"a(.)c" "a1c a2c a3c a4c")
       (format t "~a~%" m))
a1c
a2c
a3c
a4c
NIL
时间: 2024-11-01 20:28:14

lisp 正则表达式示例的相关文章

最常用的正则表达式示例

正则表达式是一种看似简单,但在各种编程语言中都非常重要的工具.本文介绍了多个最常用的正则表达式示例,可以作为范例直接应用到自己的项目中,也可以作为小例子来学习和理解. 匹配中文字符  [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了   匹配双字节字符(包括汉字在内) [^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   匹配空白行 \n\s*\r 评注:可以用来删除空白行   匹配HTML标记 <(\S

JS基础教程——正则表达式示例(推荐)

正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字.[\s*]表示空格或者*号. {}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格. (0-9) 匹配 '0-9′ 本身. [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后

《Python核心编程(第3版)》——1.5 更长的正则表达式示例

1.5 更长的正则表达式示例 我们现在将浏览一个深入的示列,它以不同的方式使用正则表达式来操作字符串.首先是一些实际上生成用于操作随机数(但不是太随机)的代码.示例1-5展示了gendata.py,这是一个生成数据集的脚本.尽管该程序只是将简单地将生成的字符串集显示到标准输出,但是该输出可以很容易重定向到测试文件. 示例1-5 用于正则表达式练习的数据生成器(gendata.py) 该脚本为正则表达式练习创建随机数据,然后将生成的数据输出到屏幕.要将该程序移植到Python 3,仅需要将prin

《Python核心编程(第3版)》——1.4 一些正则表达式示例

1.4 一些正则表达式示例 下面看一些Python正则表达式的示例代码,这将使我们更接近实际应用中的程序.如下所示,以POSIX(UNIX风格操作系统,如Linux.Mac OS X等)的who命令的输出为例,该命令将列出所有登录当前系统中的用户信息. $ who wesley console Jun 20 20:33 wesley pts/9 Jun 22 01:38 (192.168.0.6) wesley pts/1 Jun 20 20:33 (:0.0) wesley pts/2 Jun

JS使用正则表达式实现关键字替换加粗功能示例_javascript技巧

本文实例讲述了JS使用正则表达式实现关键字替换加粗功能的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

ASP中正则表达式的应用

正则|正则 一.正则表达式概述 二.正则表达式在VBScript中的应用 三.正则表达式在VavaScript中的应用 四.示例 五.总结 一.正则表达式概述 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉.不过,它们并不是您想象的那么新奇. 请回想一下在硬盘上是如何查找文件的.您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件.? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符.一个如 'data?.dat' 的模式可以找到下述文件:data1.dat.data

常用正则表达式语法例句

语法|正则 常用正则表达式语法例句 这里有一些可能会遇到的正则表达式示例: /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行. /\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID号码是否由一个2位字,一 个连字符以及一个5位数字组成. /<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匹配一个 HTML 标记. 下表是元字符及其在正则表达式上下文中的

正则表达式语法

语法|正则   一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 这里有一些可能会遇到的正则表达式示例: JScript VBScript 匹配 /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行. /\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一

ASP中正则表达式的应用-1

正则 一.正则表达式概述 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉.不过,它们并不是您想象的那么新奇. 请回想一下在硬盘上是如何查找文件的.您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件.? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符.一个如 'data?.dat' 的模式可以找到下述文件:data1.dat.data2.dat等等.如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量.'data*.dat' 可以匹配下述所有文件名:data.d