Text.Regex.Posix的=〜运算符在某些模式下无法获取返回值

问题描述 投票:3回答:1

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
regex haskell posix
1个回答
0
投票

考虑到程序包的注释和性质,这很可能是由于您特定系统上提供RegEx逻辑的底层C库中的错误所致。

这不是针对此软件包报告的Windows的第一个错误(请参阅herehere)。您可以在regex-posix存储库中打开问题,看看他们是否可以找到罪魁祸首。

© www.soinside.com 2019 - 2024. All rights reserved.