加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:29:37 所属栏目:百科 来源:网络整理
导读:我正在尝试通过使用它来编写附带的脚本等来将 Haskell引入我的日常生活中. readProcess 对于获取外部命令的结果很方便,但我发现自己正在搜索处理String结果.我来自ruby,其中正则表达是一流的,所以我习惯将它们作为工具. 我应该阅读哪些库来在haskell中进行字
我正在尝试通过使用它来编写附带的脚本等来将 Haskell引入我的日常生活中.

readProcess对于获取外部命令的结果很方便,但我发现自己正在搜索处理String结果.我来自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绑定(regex-pcre),以及一些通过DFA(regex-dfa等)工作的包.使用如下命令安装:cabal install regex-pcre,你应该很高兴.

>(模块有一个标准化的界面,区别主要在于实现和正则表达式的风格)

> haskell中有一个正则表达式对象,但您并不需要使用=?或= ~~匹配运算符. (只需使用字符串,即可自动进行转换).如果您的任务足够复杂以至于您需要第一类解析对象,请考虑查看Parsec,如其他答案中所述.

免责声明:我自己只是用户pcre,所以我对其他软件包的了解并不多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读