首页 > 解决方案 > 需要有关 Haskell 正则表达式的帮助

问题描述

给定一些字符串:"\begin""\end""\section"等。

我想将它们与以下函数和正则表达式匹配:

matchTest (mkRegex '\\[:alnum:]+')  "\begin"

当我在 GHCi 中测试它时,我总是得到 False,

有谁知道如何匹配"\begin""\end"等模式。

标签: regexhaskell

解决方案


> matchTest (mkRegex "\\\\[a-zA-Z0-9]+") "\\begin"
True

您的代码行有几个问题。

  • 正则表达式未正确引用,字符串需要在双引号内。(但你应该得到一个语法错误。)
  • 支持的正则表达式regex-compat(我假设你正在使用的包)与支持的相同egrep,他们不知道:alnum:
  • 反斜杠\是 Haskell 字符串和正则表达式中的转义字符,因此您需要对其进行转义。

推荐阅读