需要帮助Haskell正则表达式

Aro*_*Lee 2 regex haskell

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

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

matchTest (mkRegex '\\[:alnum:]+')  "\begin"
Run Code Online (Sandbox Code Playgroud)

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

有没有人知道如何匹配模式"\begin"或类似"\end"等.

rob*_*obx 5

> matchTest (mkRegex "\\\\[a-zA-Z0-9]+") "\\begin"
True
Run Code Online (Sandbox Code Playgroud)

您的代码行有几个问题.

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