gpt4 book ai didi

haskell - 为什么 Text.Regex.Posix 中的正则表达式模式的长度有限制?

转载 作者:行者123 更新时间:2023-12-03 15:11:00 24 4
gpt4 key购买 nike

我看到正则表达式模式的长度有一个奇怪的任意限制,在一串 30 个字符之后,有趣的事情开始发生。

简单的 GHCI 示例:

> import Text.Regex.Posix
> "abcdefghijklmnopqrstuvwxyz0123456789" =~ "abcdefghijklmnopqrstuvwxyz0123" :: String
"abcdefghijklmnopqrstuvwxyz0123"
> "abcdefghijklmnopqrstuvwxyz0123456789" =~ "abcdefghijklmnopqrstuvwxyz01234" :: String
""

唯一的区别是在最后一个模式的末尾添加了 4。这是一个有效的正则表达式,应该匹配,但它给了我一个空字符串。

如果我在模式中添加更多有效字符,它会变得更加奇怪:
> "abcdefghijklmnopqrstuvwxyz0123456789" =~ "abcdefghijklmnopqrstuvwxyz01234567" :: String
"ab"

它告诉我它只匹配 ab 显然这是错误的。

我的环境:
  • 堆栈版本 1.1.2(解析器 lts-6.7)
  • GHC 版本 7.10.3
  • 操作系统:Windows 10
  • 正则表达式-posix-0.95.2

  • 完全卸载并重新安装 Stack 和所有软件包并没有解决问题

    最佳答案

    关注 this discussion ,这个库似乎还有其他问题源于底层 C 代码没有正确移植到 64 位架构。

    我已切换到 regex-tdfa包,不再有这些问题。

    关于haskell - 为什么 Text.Regex.Posix 中的正则表达式模式的长度有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330568/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com