如何在Haskell';s Text.Regex库? 介绍
我正在使用Haskell的如何在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
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,效果很好