需要帮助Haskell正则表达式

时间:2018-09-26 16:57:07

标签: regex haskell

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

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

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

在GHCi中进行测试时,我总是会得到False,

有人知道如何匹配"\begin""\end"等模式吗?

1 个答案:

答案 0 :(得分:5)

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

您的代码行有几个问题。

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