有没有办法进行正确的大小写折叠Parsec
(比如我想要一个行为类似于stringCI
from的解析器Data.Attoparsec.Text
)。Text.Parsec.Token
只使用不区分大小写解析的代码char (toLower c) <|> char (toUpper c)
,但没有正确的大小写折叠。所以我很困惑这是否可能。
问问题
570 次
1 回答
1
Parsec 对此内置没有任何功能,但您可以使用例如foldCase
从不区分大小写的包和satisfy
循环中实现它。我不是 Unicode 专家,所以我不确定您必须采取哪些额外的预防措施来确保正确性。
如果您需要对区域设置敏感的转换,建议在文档中使用text-icu包;foldCase
它似乎很全面。
于 2012-01-03T18:03:31.320 回答