【发布时间】:2020-02-05 06:52:28
【问题描述】:
Text.Regex.Posix 的 =~ 运算符在某些模式下无法获取返回值。
例如,
> import Text.Regex.Posix
> "y2019m10d08" =~ "y([0-9]{4})?m([0-9]{1,2})?d([0-9]{1,2})?" :: Bool
True
> "y2019m10d08" =~ "y([0-9]{4})?m([0-9]{1,2})?d([0-9]{1,2})?" :: Int
1
> "y2019m10d08" =~ "y([0-9]{4})?m([0-9]{1,2})?d([0-9]{1,2})?" :: [[String]]
我的预期
[["y2019m10d08","2019","10","08"]]
但是在最后一个条目之后,计算似乎并没有结束。
为什么?
我的环境:
- Windows 10
- GHC 8.6.5
- regex-base-0.93.2
- regex-posix-0.95.2
【问题讨论】:
-
它可以在 macOS 10.14.6 和 Stackage LTS 14.7(GHC 8.6.5,regex-base-0.93.2,regex-posix-0.95.2)上正常工作。
-
它也可以在 Archlinux 上使用相同的 GHC 和包版本按预期工作。我立刻得到了答案。