1

有没有办法进行正确的大小写折叠Parsec(比如我想要一个行为类似于stringCIfrom的解析器Data.Attoparsec.Text)。Text.Parsec.Token只使用不区分大小写解析的代码char (toLower c) <|> char (toUpper c),但没有正确的大小写折叠。所以我很困惑这是否可能。

4

1 回答 1

1

Parsec 对此内置没有任何功能,但您可以使用例如foldCase从不区分大小写的包和satisfy循环中实现它。我不是 Unicode 专家,所以我不确定您必须采取哪些额外的预防措施来确保正确性。

如果您需要对区域设置敏感的转换,建议在文档中使用text-icu包;foldCase它似乎很全面。

于 2012-01-03T18:03:31.320 回答