gpt4 book ai didi

Haskell 中的正则表达式和字符串库

转载 作者:行者123 更新时间:2023-12-04 17:04:58 27 4
gpt4 key购买 nike

我试图通过使用 Haskell 编写附带的脚本等来将 Haskell 引入我的日常生活。

readProcess 对于获取外部命令的结果很方便,但是在处理字符串结果时我发现自己在搜索。我来自 ruby ,正则表达式是一流的,所以我习惯于将它们作为工具。

我应该阅读任何库以在haskell中进行字符串处理?搜索匹配的行,提取字符串的匹配区域,等等?

最佳答案

我发现这是一个很好的起点:http://www.serpentine.com/blog/2007/02/27/a-haskell-regular-expression-tutorial/它只涵盖基础知识,没有高级主题,但是很高兴开始恕我直言。

注意事项:

  • haskell 中的正则表达式的不同之处在于它们具有重载的返回类型。这意味着您可以从正则表达式匹配中提取许多不同类型的东西。 (Bool、String、[String] 等...)根据您使用的返回类型,它会给您返回不同类型的答案(正则表达式是否匹配、匹配的测试、所有匹配的子组、等等。)这是使用一些相当复杂的类型类巫术来完成的。上面的链接演示了基本种类,更完整的列表是 here
  • haskell 中实际上有多个提供正则表达式支持的标准模块(奇怪但真实)。上面的教程展示了 POSIX 模块,因为它在 haskell 中是标准的。如果你有 cabal,你也可以很容易地安装其他正则表达式模块并使用它们。有一个 pcre 绑定(bind)( regex-pcre ),以及一些通过 DFA 工作的包( regex-dfa 等)。使用如下命令安装:cabal install regex-pcre你应该很高兴。
  • (模块有一个标准化的接口(interface),区别主要在于实现和正则表达式风格)
  • haskell 中有一个正则表达式对象,但您并不需要它来使用 =~ 或 =~~ 匹配运算符。 (只需使用字符串,转换会自动发生)。如果您的任务足够复杂以至于您需要一流的解析对象,请考虑查看 Parsec,正如其他答案中提到的那样。

  • 免责声明:我自己只真正使用 pcre,所以我对其他软件包知之甚少。

    关于Haskell 中的正则表达式和字符串库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4410061/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com