Итак, я пишу небольшой анализатор, который извлекает все содержимое тега с конкретным классом, например, Некоторый контент -> «Некоторый контент»
Я буду анализировать большой файл html , но мне не волнует весь шум, поэтому идея заключалась в том, чтобы потреблять все символы до тех пор, пока Я достигаю , чем я использовал все символы (контент) до и вернуть строку контента.
Это работает нормально, если последним элементом в файле является мой тег td.liste , но если у меня есть какой -то текст после него или EOF , то мой анализатор потребляет его и бросает неожиданный конец ввода , если вы Выполнить ParsemyTest test3 .
См. Конец Test3 , чтобы понять, что такое случай края.
Вот мой код Пока что: < /p>
import Text.Parsec
import Text.Parsec.String
import Data.ByteString.Lazy (ByteString)
import Data.ByteString.Char8 (pack)
colOP :: Parser String
colOP = string ""
colCL :: Parser String
colCL = string ""
col :: Parser String
col = do
manyTill anyChar (try colOP)
content Either ParseError [String]
parseMyTest test = parse cols "test" test
btos :: ByteString -> String
btos = read . show
Подробнее здесь: https://stackoverflow.com/questions/389 ... ser-at-eof
Как остановить анализатор Haskell Parsec в EOF ⇐ Html
Программисты Html
-
Anonymous
1739349837
Anonymous
Итак, я пишу небольшой анализатор, который извлекает все содержимое тега с конкретным классом, например, Некоторый контент -> «Некоторый контент»
Я буду анализировать большой файл html , но мне не волнует весь шум, поэтому идея заключалась в том, чтобы потреблять все символы до тех пор, пока Я достигаю , чем я использовал все символы (контент) до и вернуть строку контента.
Это работает нормально, если последним элементом в файле является мой тег td.liste , но если у меня есть какой -то текст после него или EOF , то мой анализатор потребляет его и бросает неожиданный конец ввода , если вы Выполнить ParsemyTest test3 .
См. Конец Test3 , чтобы понять, что такое случай края.
Вот мой код Пока что: < /p>
import Text.Parsec
import Text.Parsec.String
import Data.ByteString.Lazy (ByteString)
import Data.ByteString.Char8 (pack)
colOP :: Parser String
colOP = string ""
colCL :: Parser String
colCL = string ""
col :: Parser String
col = do
manyTill anyChar (try colOP)
content Either ParseError [String]
parseMyTest test = parse cols "test" test
btos :: ByteString -> String
btos = read . show
Подробнее здесь: [url]https://stackoverflow.com/questions/38982992/how-to-stop-haskell-parsec-parser-at-eof[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия