Bool > "my left foot" =~ "foo" :: Bool
=~
是来自Text.Regex.Posix
包的中缀运算符,此处,目标字符串位于左侧,模式字符串位于右侧。在这里,=~
对我有意义。
但是,
readIp = untilM (=~ "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}")
(putStr "Enter IP address: " >> getLine)
=~
只有正确的参数,并且被赋予untilM
。 target string
作为最后一个参数。 untilM
如何确保=~
在其左侧传递目标字符串并在其右侧传递模式字符串?
答案 0 :(得分:6)
这就是操作员部分的工作原理。
(=~) = \x y -> x =~ y
(x =~) = \y -> x =~ y
(=~ y) = \x -> x =~ y
助记符:如果您有(x =~ y)
并且取出x
,则会留下( =~ y)
。
如果您希望读取正则表达式并将其与常量字符串匹配,则可以使用其他部分:
untilM ("foo" =~) (putStr "Enter regex: " >> getLine)