问题标签 [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.
regex - 使用 cl-ppcre 的正则表达式匹配错误?
尝试解析以下文本文件:
使用以下正则表达式:
\\s*prefix1\\s*prefix2\\s*(\\w[\\w\\d_]*).*\\(\\s*([^\\)]*\\))\\s*;\\s*
结果我得到以下两组(寄存器):
和
(这里引号限制了字符串,包括\n)
我不明白为什么第一组(\w[\w\d_]*)
与以下.*
部分匹配。而且,我无法摆脱不必要的尾巴!
我的错误是什么?
添加:解析的正则表达式:
添加2: 完整来源:
ADD 3:完整的输入:
common-lisp - 在普通 lisp 中提取正则表达式匹配
我必须在这里遗漏一些非常基本的东西。
我需要从 common lisp 的匹配中提取捕获组。当我在解释器中进行评估时(一个 sbcl 实现):
我得到:
但是如果我将该表达式绑定到一个值,说
number 的值变为"sample1.png"
。我如何获得"1"
打印的 , ?
regex - cl-ppcre:regex-replace 和反斜杠替换
可能是这个问题真的很困惑,但我被卡住了。如何cl-ppcre:regex-replace-all
替换反斜杠?
例如,我只想转义一些字符,如 '" ( ) 等,所以我将首先使用 | 替换,以查看匹配是否正常:
好的,让我们放斜线:
不,我们需要两个斜线:
也许像这样?
当然,如果我在斜杠之间加空格,一切都可以,但我不需要它
那么,我该如何写才能被foo \"bar\" \'baz\' \(test\)
打印?谢谢。
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代码是
错误信息是
谁能帮我?
common-lisp - CL-PPCRE Unicode 属性
我正在尝试使用 CL-PPCRE 库找到这个简单 Perl 代码的解决方案:
我是 CL-PPCRE 的新手并尝试过:
; 我收到一条错误消息,提示属性 #/Space 不存在。
如何执行等效项?
regex - 用 CL-PPCRE 匹配行尾
我有一个相当简单的正则表达式,它在我的 Ruby 代码中运行良好,但拒绝在我的 Lisp 代码中运行。我只是想匹配一个 URL(斜线后跟一个单词,仅此而已)。这是我在 Ruby 中使用的正则表达式:^\/\w*$
我希望这个匹配"/"
或"/foo"
不匹配"/foo/bar"
我尝试了以下方法:
有人可以帮忙吗?
common-lisp - 更正正则表达式“\[([a-zA-Z0-9_-]+)]”
以下 cl-ppcre 正则表达式会生成错误:
我期望的返回值是:
为了得到括号内的字符串。有人可以提供正则表达式更正吗?谢谢。
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 代码中。
有谁知道如何在这个例子中转义引号?