问题标签 [cl-ppcre]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
693 浏览

regex - 使用 cl-ppcre 的正则表达式匹配错误?

尝试解析以下文本文件:

使用以下正则表达式:
\\s*prefix1\\s*prefix2\\s*(\\w[\\w\\d_]*).*\\(\\s*([^\\)]*\\))\\s*;\\s*
结果我得到以下两组(寄存器):

(这里引号限制了字符串,包括\n)

我不明白为什么第一组(\w[\w\d_]*)与以下.*部分匹配。而且,我无法摆脱不必要的尾巴!

我的错误是什么?

添加:解析的正则表达式:

添加2: 完整来源:

ADD 3:完整的输入:

0 投票
1 回答
1527 浏览

common-lisp - 在普通 lisp 中提取正则表达式匹配

我必须在这里遗漏一些非常基本的东西。

我需要从 common lisp 的匹配中提取捕获组。当我在解释器中进行评估时(一个 sbcl 实现):

我得到:

但是如果我将该表达式绑定到一个值,说

number 的值变为"sample1.png"。我如何获得"1"打印的 , ?

0 投票
2 回答
402 浏览

regex - cl-ppcre:regex-replace 和反斜杠替换

可能是这个问题真的很困惑,但我被卡住了。如何cl-ppcre:regex-replace-all替换反斜杠?

例如,我只想转义一些字符,如 '" ( ) 等,所以我将首先使用 | 替换,以查看匹配是否正常:

好的,让我们放斜线:

不,我们需要两个斜线:

也许像这样?

当然,如果我在斜杠之间加空格,一切都可以,但我不需要它

那么,我该如何写才能被foo \"bar\" \'baz\' \(test\)打印?谢谢。

0 投票
2 回答
248 浏览

java - 运行使用 cl-cppre 的 ABCL 代码

参考我之前的问题, Executing a lisp function from Java 我能够使用 ABCL 从 Java 调用 lisp 代码。但问题是,现有的 lisp 代码使用 CL-PPCRE 包。我无法编译代码,因为它说“找不到 CL-PPCRE”。我尝试了不同的方法来添加该软件包,包括 1)如何编译使用 cl-ppcre 的 clisp 程序? 2) https://groups.google.com/forum/#!topic/cl-ppcre/juSfOhEDa1k

不工作!另一件事是,执行(编译文件 aima.asd)工作得非常好,尽管它也需要 cl-pprce

最终的java代码是

错误信息是

谁能帮我?

0 投票
2 回答
162 浏览

common-lisp - CL-PPCRE Unicode 属性

我正在尝试使用 CL-PPCRE 库找到这个简单 Perl 代码的解决方案:

我是 CL-PPCRE 的新手并尝试过:

; 我收到一条错误消息,提示属性 #/Space 不存在。

如何执行等效项?

0 投票
2 回答
258 浏览

regex - 用 CL-PPCRE 匹配行尾

我有一个相当简单的正则表达式,它在我的 Ruby 代码中运行良好,但拒绝在我的 Lisp 代码中运行。我只是想匹配一个 URL(斜线后跟一个单词,仅此而已)。这是我在 Ruby 中使用的正则表达式:^\/\w*$

我希望这个匹配"/""/foo"不匹配"/foo/bar"

我尝试了以下方法:

有人可以帮忙吗?

0 投票
2 回答
417 浏览

common-lisp - 更正正则表达式“\[([a-zA-Z0-9_-]+)]”

以下 cl-ppcre 正则表达式会生成错误:

我期望的返回值是:

为了得到括号内的字符串。有人可以提供正则表达式更正吗?谢谢。

0 投票
1 回答
60 浏览

common-lisp - 在 cl-ppcre 正则表达式中转义引号

背景

我需要解析 CSV 文件和cl-csv等。人。在大文件上速度太慢,并且依赖于cl-unicode,我首选的 lisp 实现不支持。所以,我正在改进cl-simple-table,Sabra-on-the-hill 在评论中将其作为最快的 csv 阅读器进行了基准测试

目前,simple-table 的行解析器相当脆弱,如果分隔符出现在带引号的字符串中,它就会中断。我正在尝试用 cl-ppcre 替换行解析器。

尝试

使用 Regex Coach,我发现了一个几乎适用于所有情况的正则表达式:

("[^"]+"|[^,]+)(?:,\s*)?

挑战是把这个 Perl 正则表达式字符串变成我可以在 cl-ppcre 中使用的东西split。我尝试传递正则表达式字符串,并为":

单人、双人、三人或四人\都不起作用。

我已经解析了字符串以查看解析树的样子:

并将生成的树传递给split

我还尝试了各种形式*allow-quoting*

我已经阅读了cl-ppcre 文档,但是使用解析树的例子很少,也没有转义引号的例子。

似乎没有任何效果。

我希望 Regex Coach 能够提供一种查看 Perl 语法字符串的 S 表达式解析树形式的方法。这将是一个非常有用的功能,允许您试验正则表达式字符串,然后将解析树复制并粘贴到 Lisp 代码中。

有谁知道如何在这个例子中转义引号?