高阶正则表达式



在阅读函数式编程时,我偶然发现了高阶函数的概念,据我所知,它是将函数作为参数和/或返回函数作为结果的函数。

在正则表达式的世界里有没有类似的方法?在正则表达式上运行的正则表达式以返回不同的正则表达式?

一个简单(但无用)的例子是:

(w)+(?=(er|re))

比赛对

cent(er|re)

将匹配替换为

calib

导致正则表达式

calib(er|re)

有没有人看到它在任何地方使用?谁能想到这种情况会很有用?

我个人没有,也真的想不出一个伟大的应用程序。我认为使用正则表达式要记住的重要事情是图灵完备的想法。函数式编程语言都是图灵完备的,因此函数式编程只是逻辑排序代码的另一种方式。当然,关于函数编程的优点、好处和可扩展性有很多争论。

正则表达式,因为它实际上只不过是一种文本匹配语法,并没有从函数式风格中获得真正的好处。这就是为什么HTML在正则表达式上使用图灵完备语言解析器进行解析的原因,正则表达式可以说编写起来更简单(如果可能的话)。

最新更新