gpt4 book ai didi

haskell - Parsec:跳过第一行

转载 作者:行者123 更新时间:2023-12-01 12:42:55 26 4
gpt4 key购买 nike

我写了一个解析代码,它非常适合我想要的。它按预期解析以下文件:

4,5
6,7

对应的代码是这样的:
import Text.ParserCombinators.Parsec
import Control.Applicative hiding ((<|>))
import Control.Monad

data Test = Test Integer Integer deriving Show

integer :: Parser Integer
integer = rd <$> many1 digit
where rd = read :: String -> Integer

testParser :: Parser Test
testParser = do
a <- integer
char ','
b <- integer
return $ Test a b

testParserFile = endBy testParser eol

eol :: Parser Char
eol = char '\n'

main = do
a <- parseFromFile testParserFile "./jack.txt"
print a

但我的实际文件是这样的:
col 1,col 2
4,5
6,7

有没有办法制作上述解析器,只需跳过第一行?

最佳答案

testParserFile = manyTill anyChar newline *> endBy testParser eol
manyTill p end适用 p 直到 end成功。 *>对两个 Action 进行排序并丢弃第一个值。

注意:如果您的实际文件末尾不包含换行符,那么您需要使用 sepEndBy而不是 endBy .但是,这可能是 StackOverflow 上的 Markdown 解析器的结果。

关于haskell - Parsec:跳过第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680624/

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