![]() |
1
3
状态机(由于regex可以匹配比fsms可以匹配的语言范围更广,因此它富含相当多的额外功能)是实现正则表达式引擎的典型方法,所以为什么不应该在寻找所需的“regex-like”构造的良好实现时出现类似的方法呢?
实际上,我会考虑从实际的re引擎的代码开始(pypy源代码中有一个python代码,其mercurial树是
here
,只更改“原语”(您不需要例如
|
![]() |
2
1
状态机是这里合适的解决方案。有两种常见的实现方法:
这是函数式编程的基础。下面是一个优雅的问题解决方案,用前一种风格用f编写,并在自己的数据集上运行:
下面是用后一种样式编写的相同解决方案:
请注意,第一个解决方案如何一次吃掉整个输入,而后一个解决方案一次咬掉一个数据,并返回一个新状态,准备吃掉另一个数据。因此,后者依次应用于每个基准,使用
|
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 6 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 7 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 7 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 8 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 8 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 8 月前 |