如何在Haskell';s Text.Regex库? 介绍

如何在Haskell';s Text.Regex库? 介绍,regex,haskell,escaping,posix-ere,Regex,Haskell,Escaping,Posix Ere,我正在使用Haskell的Text.Regex库,我想匹配一些在正则表达式中通常有意义的字符。根据Text.Regex的 正则表达式的语法是。。。白鹭(即。 POSIX“扩展”正则表达式) 显然,在中转义使用反斜杠[不像] 问题 但是,当我尝试这样做时: > import Text.Regex > matchRegex (mkRegex "\*") "*" > matchRegex (mkRegex "[*]") "*" Just [] 我得到以下错误: <inte

我正在使用Haskell的
Text.Regex
库,我想匹配一些在正则表达式中通常有意义的字符。根据
Text.Regex

正则表达式的语法是。。。白鹭(即。 POSIX“扩展”正则表达式)

显然,在中转义使用反斜杠[不像]


问题 但是,当我尝试这样做时:

> import Text.Regex
> matchRegex (mkRegex "\*") "*"
> matchRegex (mkRegex "[*]") "*"
Just []
我得到以下错误:

<interactive>:1:23:
    lexical error in string/character literal at character '*'
这是可行的,但看起来像是一种黑客行为,特别是如果我想连续逃避几件事情(例如,
mkRegex“[[[[(][)]][]]”“
匹配的
[()]


问题:
这是在POSIX ERE逃跑的唯一方法吗?为什么Haskell的
Text.Regex
库不支持
\
像应该的那样转义呢?

我不知道语法,但通常如果你想在字符串中写反斜杠,你需要转义它,意思是:

matchRegex (mkRegex "\\*") "*"

有帮助吗?

用两个反斜杠试试:

matchRegex (mkRegex "\\*") "*"
我刚刚试过用GHCI,效果很好