Pharo 中实现了什么样的正则表达式匹配?

What kind of regular expression matching is implemented in Pharo?

提问人:kleite 提问时间:2/12/2021 更新时间:2/12/2021 访问量:169

问:

我在计算机科学堆栈交换中遇到了这个问题,正则表达式实现背后的理论,指向这篇论文,正则表达式匹配可以简单快速 (但在 Java、Perl、PHP、Python、Ruby 等中速度很慢),讨论了正则表达式(类)实现有两大家族的事实,以及它们的相对优点。例如,一个是由 Awk、Tcl、GNU grep 和 GNU awk 实现的。另一个,例如,Perl、Python、Ruby、Java。所以我问,Pharo 使用什么实现?

正则表达式 实现 字符串匹配 Smalltalk Pharo

评论

1赞 MonkeyZeus 2/12/2021
pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/latest/...github.com/astares/Pharo-Regex-Tools 有帮助吗?
1赞 Wiktor Stribiżew 2/12/2021
好吧,我也找到了 ci.inria.fr/pharo-contribution/job/UpdatedPharoByExample/......还有 squeaksource.com/@fTghDTXLgENXRnYp/wBL3-zle。所以,它是一些特定的“缩小”正则表达式风格。
0赞 kleite 2/12/2021
@WiktorStribiżew,但是在问题中提到的两个阵营中,这种“缩小”的正则表达式味道属于哪个阵营?
3赞 Wiktor Stribiżew 2/12/2021
您可以通过尝试几个特定的结构来轻松检查 falvor 是什么。如果匹配除括号内逗号外的所有逗号,则为 PCRE。如果将整个字符串与所有换行符匹配,则为 ECMAScript,依此类推。\([^()]*\)(*SKIP)(*F)|,^[^]+$

答:

4赞 philippeback 2/12/2021 #1

有几种方法可以查看这一点。

开箱即用,可以做到

enter image description here

该帮助将为您提供更多详细信息:

Pharo Regex Help

话虽如此,如果你想解析复杂的东西,你可以研究 PetitParser、SmaCC 和其他类似的东西,这些东西也会实现可以与其他东西匹配的对象,比如字符串等等。

FuzzyMatcher 也可能引起人们的兴趣:

FuzzyMatcher